Mock Version: 6.0 Mock Version: 6.0 Mock Version: 6.0 Mock Version: 6.0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.src.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 0 Mock Version: 6.0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.src.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.BAyGH0 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-29.1.0.dev109 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/ironic-29.1.0.dev109-0.20250519190656.a5bfbe7.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-29.1.0.dev109 + rm -rf /builddir/build/BUILD/ironic-29.1.0.dev109-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev109-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/bin/git init -q + /usr/bin/git config user.name rpm-build + /usr/bin/git config user.email '' + /usr/bin/git config gc.auto 0 + /usr/bin/git add --force . + /usr/bin/git commit -q --allow-empty -a --author 'rpm-build ' -m 'openstack-ironic-29.1.0 base' + /usr/bin/git checkout --track -b rpm-build Switched to a new branch 'rpm-build' branch 'rpm-build' set up to track 'master'. + sed -i '/^[[:space:]]*-c{env:.*_CONSTRAINTS_FILE.*/d' tox.ini + sed -i 's/^deps = -c{env:.*_CONSTRAINTS_FILE.*/deps =/' tox.ini + sed -i '/^minversion.*/d' tox.ini + sed -i '/^requires.*virtualenv.*/d' tox.ini + sed -i 's/PyYAML.*/PyYAML/' requirements.txt + for pkg in doc8 bandit pre-commit hacking flake8-import-order sphinx openstackdocstheme + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f doc/requirements.txt ']' + sed -i '/^doc8.*/d' doc/requirements.txt + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f test-requirements.txt ']' + sed -i '/^doc8.*/d' test-requirements.txt + for pkg in doc8 bandit pre-commit hacking flake8-import-order sphinx openstackdocstheme + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f doc/requirements.txt ']' + sed -i '/^bandit.*/d' doc/requirements.txt + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f test-requirements.txt ']' + sed -i '/^bandit.*/d' test-requirements.txt + for pkg in doc8 bandit pre-commit hacking flake8-import-order sphinx openstackdocstheme + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f doc/requirements.txt ']' + sed -i '/^pre-commit.*/d' doc/requirements.txt + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f test-requirements.txt ']' + sed -i '/^pre-commit.*/d' test-requirements.txt + for pkg in doc8 bandit pre-commit hacking flake8-import-order sphinx openstackdocstheme + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f doc/requirements.txt ']' + sed -i '/^hacking.*/d' doc/requirements.txt + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f test-requirements.txt ']' + sed -i '/^hacking.*/d' test-requirements.txt + for pkg in doc8 bandit pre-commit hacking flake8-import-order sphinx openstackdocstheme + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f doc/requirements.txt ']' + sed -i '/^flake8-import-order.*/d' doc/requirements.txt + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f test-requirements.txt ']' + sed -i '/^flake8-import-order.*/d' test-requirements.txt + for pkg in doc8 bandit pre-commit hacking flake8-import-order sphinx openstackdocstheme + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f doc/requirements.txt ']' + sed -i '/^sphinx.*/d' doc/requirements.txt + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f test-requirements.txt ']' + sed -i '/^sphinx.*/d' test-requirements.txt + for pkg in doc8 bandit pre-commit hacking flake8-import-order sphinx openstackdocstheme + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f doc/requirements.txt ']' + sed -i '/^openstackdocstheme.*/d' doc/requirements.txt + for reqfile in doc/requirements.txt test-requirements.txt + '[' -f test-requirements.txt ']' + sed -i '/^openstackdocstheme.*/d' test-requirements.txt + sed -i 's/netaddr.*/netaddr/g' requirements.txt + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.lJhrJE + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires -t -e py312 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement not satisfied: wheel Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Exiting dependency generation pass: get_requires_for_build_wheel + cat /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.buildreqs.nosrc.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.M3nEWV + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires -t -e py312 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling tox-current-env >= 0.0.6 from tox itself Requirement not satisfied: tox-current-env >= 0.0.6 Exiting dependency generation pass: tox itself + cat /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.buildreqs.nosrc.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.JhO3Kv + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires -t -e py312 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.12) py312: OK (0.01 seconds) congratulations :) (0.08 seconds) Handling tox from tox --print-deps-only: py312 Requirement satisfied: tox (installed: tox 4.21.2) Handling pbr>=6.0.0 from tox --print-deps-only: py312 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py312 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic>=1.4.2 from tox --print-deps-only: py312 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.13.1) Handling automaton>=1.9.0 from tox --print-deps-only: py312 Requirement not satisfied: automaton>=1.9.0 Handling eventlet>=0.30.1 from tox --print-deps-only: py312 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py312 Requirement not satisfied: WebOb>=1.7.1 Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py312 Requirement not satisfied: keystoneauth1>=4.2.0 Handling stevedore>=1.29.0 from tox --print-deps-only: py312 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.concurrency>=4.2.0 Handling oslo.config>=6.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.context>=2.22.0 Handling oslo.db>=9.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.rootwrap>=5.8.0 Handling oslo.log>=4.3.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.log>=4.3.0 Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.middleware>=3.31.0 Handling oslo.policy>=4.5.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.policy>=4.5.0 Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.serialization>=2.25.0 Handling oslo.service>=1.24.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.service>=1.24.0 Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.upgradecheck>=1.3.0 Handling oslo.utils>=8.0.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.utils>=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler>=1.5.0 from tox --print-deps-only: py312 Requirement not satisfied: osprofiler>=1.5.0 Handling os-traits>=0.4.0 from tox --print-deps-only: py312 Requirement not satisfied: os-traits>=0.4.0 Handling pecan>=1.0.0 from tox --print-deps-only: py312 Requirement not satisfied: pecan>=1.0.0 Handling pycdlib>=1.11.0 from tox --print-deps-only: py312 Requirement not satisfied: pycdlib>=1.11.0 Handling requests>=2.18.0 from tox --print-deps-only: py312 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py312 Requirement not satisfied: jsonpatch>=1.16 Handling Jinja2>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement not satisfied: keystonemiddleware>=9.5.0 Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.messaging>=14.1.0 Handling tenacity>=6.3.1 from tox --print-deps-only: py312 Requirement not satisfied: tenacity>=6.3.1 Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py312 Requirement not satisfied: oslo.versionedobjects>=1.31.2 Handling jsonschema>=4.0.0 from tox --print-deps-only: py312 Requirement not satisfied: jsonschema>=4.0.0 Handling psutil>=3.2.2 from tox --print-deps-only: py312 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.9.8) Handling futurist>=1.2.0 from tox --print-deps-only: py312 Requirement not satisfied: futurist>=1.2.0 Handling tooz>=2.7.0 from tox --print-deps-only: py312 Requirement not satisfied: tooz>=2.7.0 Handling openstacksdk>=0.99.0 from tox --print-deps-only: py312 Requirement not satisfied: openstacksdk>=0.99.0 Handling sushy>=4.8.0 from tox --print-deps-only: py312 Requirement not satisfied: sushy>=4.8.0 Handling construct>=2.9.39 from tox --print-deps-only: py312 Requirement not satisfied: construct>=2.9.39 Handling netaddr from tox --print-deps-only: py312 Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse>=1.0.1 from tox --print-deps-only: py312 Requirement not satisfied: microversion-parse>=1.0.1 Handling zeroconf>=0.24.0 from tox --print-deps-only: py312 Requirement not satisfied: zeroconf>=0.24.0 Handling os-service-types>=1.7.0 from tox --print-deps-only: py312 Requirement not satisfied: os-service-types>=1.7.0 Handling bcrypt>=3.1.3 from tox --print-deps-only: py312 Requirement not satisfied: bcrypt>=3.1.3 Handling websockify>=0.9.0 from tox --print-deps-only: py312 Requirement not satisfied: websockify>=0.9.0 Handling PyYAML from tox --print-deps-only: py312 Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling coverage>=4.0 from tox --print-deps-only: py312 Requirement not satisfied: coverage>=4.0 Handling ddt>=1.2.1 from tox --print-deps-only: py312 Requirement not satisfied: ddt>=1.2.1 Handling fixtures>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: fixtures>=3.0.0 (installed: fixtures 4.2.2) Handling PyMySQL>=0.8.0 from tox --print-deps-only: py312 Requirement satisfied: PyMySQL>=0.8.0 (installed: PyMySQL 1.1.1) Handling oslo.reports>=1.18.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.reports>=1.18.0 Handling oslotest>=3.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslotest>=3.2.0 (installed: oslotest 5.0.1) Handling stestr>=2.0.0 from tox --print-deps-only: py312 Requirement not satisfied: stestr>=2.0.0 Handling testtools>=2.5.0 from tox --print-deps-only: py312 Requirement satisfied: testtools>=2.5.0 (installed: testtools 2.7.2) Handling WebTest>=2.0.27 from tox --print-deps-only: py312 Requirement not satisfied: WebTest>=2.0.27 Handling pysnmp-lextudio>=5.0.0 from tox --print-deps-only: py312 Requirement not satisfied: pysnmp-lextudio>=5.0.0 Handling pyasn1>=0.5.1 from tox --print-deps-only: py312 Requirement not satisfied: pyasn1>=0.5.1 Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py312 Requirement not satisfied: pyasn1-modules>=0.3.0 WARNING setuptools_scm._integration.setuptools pyproject.toml does not contain a tool.setuptools_scm section /usr/lib/python3.12/site-packages/setuptools/command/develop.py:39: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) /usr/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. Follow the current Python packaging guidelines when building Python RPM packages. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html and https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ for details. ******************************************************************************** !! self.initialize_options() running dist_info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt writing requirements to ironic.egg-info/requires.txt writing top-level names to ironic.egg-info/top_level.txt writing pbr to ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt [pbr] In git context, generating filelist from git warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution adding license file 'LICENSE' adding license file 'AUTHORS' writing manifest file 'ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-29.1.0.dev109/ironic-29.1.0.dev109.dist-info' Handling pbr >=6.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr >=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy >=1.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy >=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic >=1.4.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic >=1.4.2 (installed: alembic 1.13.1) Handling automaton >=1.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: automaton >=1.9.0 Handling eventlet >=0.30.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet >=0.30.1 (installed: eventlet 0.36.1) Handling WebOb >=1.7.1 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: WebOb >=1.7.1 Handling keystoneauth1 >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: keystoneauth1 >=4.2.0 Handling stevedore >=1.29.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore >=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.concurrency >=4.2.0 Handling oslo.config >=6.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config >=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context >=2.22.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.context >=2.22.0 Handling oslo.db >=9.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db >=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap >=5.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.rootwrap >=5.8.0 Handling oslo.log >=4.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.log >=4.3.0 Handling oslo.middleware >=3.31.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.middleware >=3.31.0 Handling oslo.policy >=4.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.policy >=4.5.0 Handling oslo.serialization >=2.25.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.serialization >=2.25.0 Handling oslo.service >=1.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.service >=1.24.0 Handling oslo.upgradecheck >=1.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.upgradecheck >=1.3.0 Handling oslo.utils >=8.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.utils >=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler >=1.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: osprofiler >=1.5.0 Handling os-traits >=0.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: os-traits >=0.4.0 Handling pecan >=1.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: pecan >=1.0.0 Handling pycdlib >=1.11.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: pycdlib >=1.11.0 Handling requests >=2.18.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: requests >=2.18.0 (installed: requests 2.32.3) Handling rfc3986 >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: rfc3986 >=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch >=1.16 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: jsonpatch >=1.16 Handling Jinja2 >=3.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 >=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: keystonemiddleware >=9.5.0 Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.messaging >=14.1.0 Handling tenacity >=6.3.1 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: tenacity >=6.3.1 Handling oslo.versionedobjects >=1.31.2 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.versionedobjects >=1.31.2 Handling jsonschema >=4.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: jsonschema >=4.0.0 Handling psutil >=3.2.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil >=3.2.2 (installed: psutil 5.9.8) Handling futurist >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: futurist >=1.2.0 Handling tooz >=2.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: tooz >=2.7.0 Handling openstacksdk >=0.99.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: openstacksdk >=0.99.0 Handling sushy >=4.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: sushy >=4.8.0 Handling construct >=2.9.39 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: construct >=2.9.39 Handling netaddr from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse >=1.0.1 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: microversion-parse >=1.0.1 Handling zeroconf >=0.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: zeroconf >=0.24.0 Handling os-service-types >=1.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: os-service-types >=1.7.0 Handling bcrypt >=3.1.3 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: bcrypt >=3.1.3 Handling websockify >=0.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: websockify >=0.9.0 Handling PyYAML from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling virtualbmc >=1.4.0 ; extra == 'devstack' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: virtualbmc >=1.4.0 ; extra == 'devstack' Handling oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' Handling oslo.i18n >=3.20.0 ; extra == 'i18n' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.i18n >=3.20.0 ; extra == 'i18n' Handling coverage >=4.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: coverage >=4.0 ; extra == 'test' Handling ddt >=1.2.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: ddt >=1.2.1 ; extra == 'test' Handling fixtures >=3.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: fixtures >=3.0.0 ; extra == 'test' Handling PyMySQL >=0.8.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: PyMySQL >=0.8.0 ; extra == 'test' Handling oslo.reports >=1.18.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'test' Handling oslotest >=3.2.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslotest >=3.2.0 ; extra == 'test' Handling stestr >=2.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: stestr >=2.0.0 ; extra == 'test' Handling testtools >=2.5.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: testtools >=2.5.0 ; extra == 'test' Handling WebTest >=2.0.27 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: WebTest >=2.0.27 ; extra == 'test' Handling pysnmp-lextudio >=5.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pysnmp-lextudio >=5.0.0 ; extra == 'test' Handling pyasn1 >=0.5.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1 >=0.5.1 ; extra == 'test' Handling pyasn1-modules >=0.3.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1-modules >=0.3.0 ; extra == 'test' + cat /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev109.dist-info/ removed 'ironic-29.1.0.dev109.dist-info/AUTHORS' removed 'ironic-29.1.0.dev109.dist-info/LICENSE' removed 'ironic-29.1.0.dev109.dist-info/METADATA' removed 'ironic-29.1.0.dev109.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev109.dist-info/pbr.json' removed 'ironic-29.1.0.dev109.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev109.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.buildreqs.nosrc.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.IuPwSL + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires -t -e py312 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.12) py312: OK (0.01 seconds) congratulations :) (0.08 seconds) Handling tox from tox --print-deps-only: py312 Requirement satisfied: tox (installed: tox 4.21.2) Handling pbr>=6.0.0 from tox --print-deps-only: py312 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py312 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic>=1.4.2 from tox --print-deps-only: py312 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.13.1) Handling automaton>=1.9.0 from tox --print-deps-only: py312 Requirement satisfied: automaton>=1.9.0 (installed: automaton 3.2.0) Handling eventlet>=0.30.1 from tox --print-deps-only: py312 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py312 Requirement satisfied: WebOb>=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: keystoneauth1>=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore>=1.29.0 from tox --print-deps-only: py312 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.concurrency>=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config>=6.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.context>=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db>=9.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log>=4.3.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.log>=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.middleware>=3.31.0 (installed: oslo.middleware 6.5.0) Handling oslo.policy>=4.5.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.policy>=4.5.0 (installed: oslo.policy 4.5.1) Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.serialization>=2.25.0 (installed: oslo.serialization 5.7.0) Handling oslo.service>=1.24.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.service>=1.24.0 (installed: oslo.service 4.1.1) Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.upgradecheck>=1.3.0 (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils>=8.0.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.utils>=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler>=1.5.0 from tox --print-deps-only: py312 Requirement satisfied: osprofiler>=1.5.0 (installed: osprofiler 4.2.0) Handling os-traits>=0.4.0 from tox --print-deps-only: py312 Requirement satisfied: os-traits>=0.4.0 (installed: os-traits 3.5.0) Handling pecan>=1.0.0 from tox --print-deps-only: py312 Requirement satisfied: pecan>=1.0.0 (installed: pecan 1.5.1) Handling pycdlib>=1.11.0 from tox --print-deps-only: py312 Requirement satisfied: pycdlib>=1.11.0 (installed: pycdlib 1.14.0) Handling requests>=2.18.0 from tox --print-deps-only: py312 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py312 Requirement satisfied: jsonpatch>=1.16 (installed: jsonpatch 1.33) Handling Jinja2>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity>=6.3.1 from tox --print-deps-only: py312 Requirement satisfied: tenacity>=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py312 Requirement satisfied: oslo.versionedobjects>=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema>=4.0.0 from tox --print-deps-only: py312 Requirement satisfied: jsonschema>=4.0.0 (installed: jsonschema 4.19.1) Handling psutil>=3.2.2 from tox --print-deps-only: py312 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.9.8) Handling futurist>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: futurist>=1.2.0 (installed: futurist 3.1.1) Handling tooz>=2.7.0 from tox --print-deps-only: py312 Requirement satisfied: tooz>=2.7.0 (installed: tooz 6.3.0) Handling openstacksdk>=0.99.0 from tox --print-deps-only: py312 Requirement satisfied: openstacksdk>=0.99.0 (installed: openstacksdk 4.5.0) Handling sushy>=4.8.0 from tox --print-deps-only: py312 Requirement satisfied: sushy>=4.8.0 (installed: sushy 5.6.0) Handling construct>=2.9.39 from tox --print-deps-only: py312 Requirement satisfied: construct>=2.9.39 (installed: construct 2.10.70) Handling netaddr from tox --print-deps-only: py312 Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse>=1.0.1 from tox --print-deps-only: py312 Requirement satisfied: microversion-parse>=1.0.1 (installed: microversion-parse 2.0.0) Handling zeroconf>=0.24.0 from tox --print-deps-only: py312 Requirement satisfied: zeroconf>=0.24.0 (installed: zeroconf 0.118.0) Handling os-service-types>=1.7.0 from tox --print-deps-only: py312 Requirement satisfied: os-service-types>=1.7.0 (installed: os-service-types 1.7.0) Handling bcrypt>=3.1.3 from tox --print-deps-only: py312 Requirement satisfied: bcrypt>=3.1.3 (installed: bcrypt 3.2.2) Handling websockify>=0.9.0 from tox --print-deps-only: py312 Requirement satisfied: websockify>=0.9.0 (installed: websockify 0.12.0) Handling PyYAML from tox --print-deps-only: py312 Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling coverage>=4.0 from tox --print-deps-only: py312 Requirement satisfied: coverage>=4.0 (installed: coverage 7.3.2) Handling ddt>=1.2.1 from tox --print-deps-only: py312 Requirement satisfied: ddt>=1.2.1 (installed: ddt 1.6.0) Handling fixtures>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: fixtures>=3.0.0 (installed: fixtures 4.2.2) Handling PyMySQL>=0.8.0 from tox --print-deps-only: py312 Requirement satisfied: PyMySQL>=0.8.0 (installed: PyMySQL 1.1.1) Handling oslo.reports>=1.18.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.reports>=1.18.0 (installed: oslo.reports 3.5.1) Handling oslotest>=3.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslotest>=3.2.0 (installed: oslotest 5.0.1) Handling stestr>=2.0.0 from tox --print-deps-only: py312 Requirement satisfied: stestr>=2.0.0 (installed: stestr 4.1.0) Handling testtools>=2.5.0 from tox --print-deps-only: py312 Requirement satisfied: testtools>=2.5.0 (installed: testtools 2.7.2) Handling WebTest>=2.0.27 from tox --print-deps-only: py312 Requirement satisfied: WebTest>=2.0.27 (installed: WebTest 3.0.0) Handling pysnmp-lextudio>=5.0.0 from tox --print-deps-only: py312 Requirement satisfied: pysnmp-lextudio>=5.0.0 (installed: pysnmp-lextudio 5.0.33) Handling pyasn1>=0.5.1 from tox --print-deps-only: py312 Requirement satisfied: pyasn1>=0.5.1 (installed: pyasn1 0.6.1) Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py312 Requirement satisfied: pyasn1-modules>=0.3.0 (installed: pyasn1-modules 0.4.1) WARNING setuptools_scm._integration.setuptools pyproject.toml does not contain a tool.setuptools_scm section /usr/lib/python3.12/site-packages/setuptools/command/develop.py:39: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) /usr/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. Follow the current Python packaging guidelines when building Python RPM packages. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html and https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ for details. ******************************************************************************** !! self.initialize_options() running dist_info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt writing requirements to ironic.egg-info/requires.txt writing top-level names to ironic.egg-info/top_level.txt writing pbr to ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt [pbr] In git context, generating filelist from git warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution adding license file 'LICENSE' adding license file 'AUTHORS' writing manifest file 'ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-29.1.0.dev109/ironic-29.1.0.dev109.dist-info' Handling pbr >=6.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr >=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy >=1.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy >=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic >=1.4.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic >=1.4.2 (installed: alembic 1.13.1) Handling automaton >=1.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: automaton >=1.9.0 (installed: automaton 3.2.0) Handling eventlet >=0.30.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet >=0.30.1 (installed: eventlet 0.36.1) Handling WebOb >=1.7.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: WebOb >=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1 >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystoneauth1 >=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore >=1.29.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore >=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.concurrency >=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config >=6.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config >=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context >=2.22.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.context >=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db >=9.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db >=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap >=5.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.rootwrap >=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log >=4.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.log >=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware >=3.31.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.middleware >=3.31.0 (installed: oslo.middleware 6.5.0) Handling oslo.policy >=4.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.policy >=4.5.0 (installed: oslo.policy 4.5.1) Handling oslo.serialization >=2.25.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.serialization >=2.25.0 (installed: oslo.serialization 5.7.0) Handling oslo.service >=1.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.service >=1.24.0 (installed: oslo.service 4.1.1) Handling oslo.upgradecheck >=1.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.upgradecheck >=1.3.0 (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils >=8.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.utils >=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler >=1.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: osprofiler >=1.5.0 (installed: osprofiler 4.2.0) Handling os-traits >=0.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: os-traits >=0.4.0 (installed: os-traits 3.5.0) Handling pecan >=1.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pecan >=1.0.0 (installed: pecan 1.5.1) Handling pycdlib >=1.11.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pycdlib >=1.11.0 (installed: pycdlib 1.14.0) Handling requests >=2.18.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: requests >=2.18.0 (installed: requests 2.32.3) Handling rfc3986 >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: rfc3986 >=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch >=1.16 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonpatch >=1.16 (installed: jsonpatch 1.33) Handling Jinja2 >=3.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 >=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystonemiddleware >=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.messaging >=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity >=6.3.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tenacity >=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects >=1.31.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.versionedobjects >=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema >=4.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonschema >=4.0.0 (installed: jsonschema 4.19.1) Handling psutil >=3.2.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil >=3.2.2 (installed: psutil 5.9.8) Handling futurist >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: futurist >=1.2.0 (installed: futurist 3.1.1) Handling tooz >=2.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tooz >=2.7.0 (installed: tooz 6.3.0) Handling openstacksdk >=0.99.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: openstacksdk >=0.99.0 (installed: openstacksdk 4.5.0) Handling sushy >=4.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: sushy >=4.8.0 (installed: sushy 5.6.0) Handling construct >=2.9.39 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: construct >=2.9.39 (installed: construct 2.10.70) Handling netaddr from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse >=1.0.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: microversion-parse >=1.0.1 (installed: microversion-parse 2.0.0) Handling zeroconf >=0.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: zeroconf >=0.24.0 (installed: zeroconf 0.118.0) Handling os-service-types >=1.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: os-service-types >=1.7.0 (installed: os-service-types 1.7.0) Handling bcrypt >=3.1.3 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: bcrypt >=3.1.3 (installed: bcrypt 3.2.2) Handling websockify >=0.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: websockify >=0.9.0 (installed: websockify 0.12.0) Handling PyYAML from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling virtualbmc >=1.4.0 ; extra == 'devstack' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: virtualbmc >=1.4.0 ; extra == 'devstack' Handling oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' Handling oslo.i18n >=3.20.0 ; extra == 'i18n' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.i18n >=3.20.0 ; extra == 'i18n' Handling coverage >=4.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: coverage >=4.0 ; extra == 'test' Handling ddt >=1.2.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: ddt >=1.2.1 ; extra == 'test' Handling fixtures >=3.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: fixtures >=3.0.0 ; extra == 'test' Handling PyMySQL >=0.8.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: PyMySQL >=0.8.0 ; extra == 'test' Handling oslo.reports >=1.18.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'test' Handling oslotest >=3.2.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslotest >=3.2.0 ; extra == 'test' Handling stestr >=2.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: stestr >=2.0.0 ; extra == 'test' Handling testtools >=2.5.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: testtools >=2.5.0 ; extra == 'test' Handling WebTest >=2.0.27 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: WebTest >=2.0.27 ; extra == 'test' Handling pysnmp-lextudio >=5.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pysnmp-lextudio >=5.0.0 ; extra == 'test' Handling pyasn1 >=0.5.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1 >=0.5.1 ; extra == 'test' Handling pyasn1-modules >=0.3.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1-modules >=0.3.0 ; extra == 'test' + cat /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev109.dist-info/ removed 'ironic-29.1.0.dev109.dist-info/AUTHORS' removed 'ironic-29.1.0.dev109.dist-info/LICENSE' removed 'ironic-29.1.0.dev109.dist-info/METADATA' removed 'ironic-29.1.0.dev109.dist-info/top_level.txt' removed 'ironic-29.1.0.dev109.dist-info/pbr.json' removed 'ironic-29.1.0.dev109.dist-info/entry_points.txt' removed directory 'ironic-29.1.0.dev109.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.buildreqs.nosrc.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target x86_64 /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target x86_64 /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.ut3kIL + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires -t -e py312 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.12) py312: OK (0.01 seconds) congratulations :) (0.07 seconds) Handling tox from tox --print-deps-only: py312 Requirement satisfied: tox (installed: tox 4.21.2) Handling pbr>=6.0.0 from tox --print-deps-only: py312 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py312 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic>=1.4.2 from tox --print-deps-only: py312 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.13.1) Handling automaton>=1.9.0 from tox --print-deps-only: py312 Requirement satisfied: automaton>=1.9.0 (installed: automaton 3.2.0) Handling eventlet>=0.30.1 from tox --print-deps-only: py312 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py312 Requirement satisfied: WebOb>=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: keystoneauth1>=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore>=1.29.0 from tox --print-deps-only: py312 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.concurrency>=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config>=6.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.context>=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db>=9.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log>=4.3.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.log>=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.middleware>=3.31.0 (installed: oslo.middleware 6.5.0) Handling oslo.policy>=4.5.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.policy>=4.5.0 (installed: oslo.policy 4.5.1) Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.serialization>=2.25.0 (installed: oslo.serialization 5.7.0) Handling oslo.service>=1.24.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.service>=1.24.0 (installed: oslo.service 4.1.1) Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.upgradecheck>=1.3.0 (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils>=8.0.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.utils>=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler>=1.5.0 from tox --print-deps-only: py312 Requirement satisfied: osprofiler>=1.5.0 (installed: osprofiler 4.2.0) Handling os-traits>=0.4.0 from tox --print-deps-only: py312 Requirement satisfied: os-traits>=0.4.0 (installed: os-traits 3.5.0) Handling pecan>=1.0.0 from tox --print-deps-only: py312 Requirement satisfied: pecan>=1.0.0 (installed: pecan 1.5.1) Handling pycdlib>=1.11.0 from tox --print-deps-only: py312 Requirement satisfied: pycdlib>=1.11.0 (installed: pycdlib 1.14.0) Handling requests>=2.18.0 from tox --print-deps-only: py312 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py312 Requirement satisfied: jsonpatch>=1.16 (installed: jsonpatch 1.33) Handling Jinja2>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity>=6.3.1 from tox --print-deps-only: py312 Requirement satisfied: tenacity>=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py312 Requirement satisfied: oslo.versionedobjects>=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema>=4.0.0 from tox --print-deps-only: py312 Requirement satisfied: jsonschema>=4.0.0 (installed: jsonschema 4.19.1) Handling psutil>=3.2.2 from tox --print-deps-only: py312 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.9.8) Handling futurist>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: futurist>=1.2.0 (installed: futurist 3.1.1) Handling tooz>=2.7.0 from tox --print-deps-only: py312 Requirement satisfied: tooz>=2.7.0 (installed: tooz 6.3.0) Handling openstacksdk>=0.99.0 from tox --print-deps-only: py312 Requirement satisfied: openstacksdk>=0.99.0 (installed: openstacksdk 4.5.0) Handling sushy>=4.8.0 from tox --print-deps-only: py312 Requirement satisfied: sushy>=4.8.0 (installed: sushy 5.6.0) Handling construct>=2.9.39 from tox --print-deps-only: py312 Requirement satisfied: construct>=2.9.39 (installed: construct 2.10.70) Handling netaddr from tox --print-deps-only: py312 Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse>=1.0.1 from tox --print-deps-only: py312 Requirement satisfied: microversion-parse>=1.0.1 (installed: microversion-parse 2.0.0) Handling zeroconf>=0.24.0 from tox --print-deps-only: py312 Requirement satisfied: zeroconf>=0.24.0 (installed: zeroconf 0.118.0) Handling os-service-types>=1.7.0 from tox --print-deps-only: py312 Requirement satisfied: os-service-types>=1.7.0 (installed: os-service-types 1.7.0) Handling bcrypt>=3.1.3 from tox --print-deps-only: py312 Requirement satisfied: bcrypt>=3.1.3 (installed: bcrypt 3.2.2) Handling websockify>=0.9.0 from tox --print-deps-only: py312 Requirement satisfied: websockify>=0.9.0 (installed: websockify 0.12.0) Handling PyYAML from tox --print-deps-only: py312 Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling coverage>=4.0 from tox --print-deps-only: py312 Requirement satisfied: coverage>=4.0 (installed: coverage 7.3.2) Handling ddt>=1.2.1 from tox --print-deps-only: py312 Requirement satisfied: ddt>=1.2.1 (installed: ddt 1.6.0) Handling fixtures>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: fixtures>=3.0.0 (installed: fixtures 4.2.2) Handling PyMySQL>=0.8.0 from tox --print-deps-only: py312 Requirement satisfied: PyMySQL>=0.8.0 (installed: PyMySQL 1.1.1) Handling oslo.reports>=1.18.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.reports>=1.18.0 (installed: oslo.reports 3.5.1) Handling oslotest>=3.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslotest>=3.2.0 (installed: oslotest 5.0.1) Handling stestr>=2.0.0 from tox --print-deps-only: py312 Requirement satisfied: stestr>=2.0.0 (installed: stestr 4.1.0) Handling testtools>=2.5.0 from tox --print-deps-only: py312 Requirement satisfied: testtools>=2.5.0 (installed: testtools 2.7.2) Handling WebTest>=2.0.27 from tox --print-deps-only: py312 Requirement satisfied: WebTest>=2.0.27 (installed: WebTest 3.0.0) Handling pysnmp-lextudio>=5.0.0 from tox --print-deps-only: py312 Requirement satisfied: pysnmp-lextudio>=5.0.0 (installed: pysnmp-lextudio 5.0.33) Handling pyasn1>=0.5.1 from tox --print-deps-only: py312 Requirement satisfied: pyasn1>=0.5.1 (installed: pyasn1 0.6.1) Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py312 Requirement satisfied: pyasn1-modules>=0.3.0 (installed: pyasn1-modules 0.4.1) WARNING setuptools_scm._integration.setuptools pyproject.toml does not contain a tool.setuptools_scm section /usr/lib/python3.12/site-packages/setuptools/command/develop.py:39: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) /usr/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. Follow the current Python packaging guidelines when building Python RPM packages. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html and https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ for details. ******************************************************************************** !! self.initialize_options() running dist_info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt writing requirements to ironic.egg-info/requires.txt writing top-level names to ironic.egg-info/top_level.txt writing pbr to ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt [pbr] In git context, generating filelist from git warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution adding license file 'LICENSE' adding license file 'AUTHORS' writing manifest file 'ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-29.1.0.dev109/ironic-29.1.0.dev109.dist-info' Handling pbr >=6.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr >=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy >=1.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy >=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic >=1.4.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic >=1.4.2 (installed: alembic 1.13.1) Handling automaton >=1.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: automaton >=1.9.0 (installed: automaton 3.2.0) Handling eventlet >=0.30.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet >=0.30.1 (installed: eventlet 0.36.1) Handling WebOb >=1.7.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: WebOb >=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1 >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystoneauth1 >=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore >=1.29.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore >=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.concurrency >=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config >=6.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config >=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context >=2.22.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.context >=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db >=9.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db >=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap >=5.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.rootwrap >=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log >=4.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.log >=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware >=3.31.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.middleware >=3.31.0 (installed: oslo.middleware 6.5.0) Handling oslo.policy >=4.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.policy >=4.5.0 (installed: oslo.policy 4.5.1) Handling oslo.serialization >=2.25.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.serialization >=2.25.0 (installed: oslo.serialization 5.7.0) Handling oslo.service >=1.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.service >=1.24.0 (installed: oslo.service 4.1.1) Handling oslo.upgradecheck >=1.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.upgradecheck >=1.3.0 (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils >=8.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.utils >=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler >=1.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: osprofiler >=1.5.0 (installed: osprofiler 4.2.0) Handling os-traits >=0.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: os-traits >=0.4.0 (installed: os-traits 3.5.0) Handling pecan >=1.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pecan >=1.0.0 (installed: pecan 1.5.1) Handling pycdlib >=1.11.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pycdlib >=1.11.0 (installed: pycdlib 1.14.0) Handling requests >=2.18.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: requests >=2.18.0 (installed: requests 2.32.3) Handling rfc3986 >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: rfc3986 >=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch >=1.16 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonpatch >=1.16 (installed: jsonpatch 1.33) Handling Jinja2 >=3.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 >=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystonemiddleware >=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.messaging >=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity >=6.3.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tenacity >=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects >=1.31.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.versionedobjects >=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema >=4.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonschema >=4.0.0 (installed: jsonschema 4.19.1) Handling psutil >=3.2.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil >=3.2.2 (installed: psutil 5.9.8) Handling futurist >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: futurist >=1.2.0 (installed: futurist 3.1.1) Handling tooz >=2.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tooz >=2.7.0 (installed: tooz 6.3.0) Handling openstacksdk >=0.99.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: openstacksdk >=0.99.0 (installed: openstacksdk 4.5.0) Handling sushy >=4.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: sushy >=4.8.0 (installed: sushy 5.6.0) Handling construct >=2.9.39 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: construct >=2.9.39 (installed: construct 2.10.70) Handling netaddr from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse >=1.0.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: microversion-parse >=1.0.1 (installed: microversion-parse 2.0.0) Handling zeroconf >=0.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: zeroconf >=0.24.0 (installed: zeroconf 0.118.0) Handling os-service-types >=1.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: os-service-types >=1.7.0 (installed: os-service-types 1.7.0) Handling bcrypt >=3.1.3 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: bcrypt >=3.1.3 (installed: bcrypt 3.2.2) Handling websockify >=0.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: websockify >=0.9.0 (installed: websockify 0.12.0) Handling PyYAML from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling virtualbmc >=1.4.0 ; extra == 'devstack' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: virtualbmc >=1.4.0 ; extra == 'devstack' Handling oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' Handling oslo.i18n >=3.20.0 ; extra == 'i18n' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.i18n >=3.20.0 ; extra == 'i18n' Handling coverage >=4.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: coverage >=4.0 ; extra == 'test' Handling ddt >=1.2.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: ddt >=1.2.1 ; extra == 'test' Handling fixtures >=3.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: fixtures >=3.0.0 ; extra == 'test' Handling PyMySQL >=0.8.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: PyMySQL >=0.8.0 ; extra == 'test' Handling oslo.reports >=1.18.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'test' Handling oslotest >=3.2.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslotest >=3.2.0 ; extra == 'test' Handling stestr >=2.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: stestr >=2.0.0 ; extra == 'test' Handling testtools >=2.5.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: testtools >=2.5.0 ; extra == 'test' Handling WebTest >=2.0.27 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: WebTest >=2.0.27 ; extra == 'test' Handling pysnmp-lextudio >=5.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pysnmp-lextudio >=5.0.0 ; extra == 'test' Handling pyasn1 >=0.5.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1 >=0.5.1 ; extra == 'test' Handling pyasn1-modules >=0.3.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1-modules >=0.3.0 ; extra == 'test' + cat /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev109.dist-info/ removed 'ironic-29.1.0.dev109.dist-info/AUTHORS' removed 'ironic-29.1.0.dev109.dist-info/LICENSE' removed 'ironic-29.1.0.dev109.dist-info/METADATA' removed 'ironic-29.1.0.dev109.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev109.dist-info/pbr.json' removed 'ironic-29.1.0.dev109.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev109.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.japOYG + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ironic-29.1.0.dev109 + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir Processing /builddir/build/BUILD/ironic-29.1.0.dev109 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) WARNING setuptools_scm._integration.setuptools pyproject.toml does not contain a tool.setuptools_scm section /usr/lib/python3.12/site-packages/setuptools/command/develop.py:39: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) /usr/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. Follow the current Python packaging guidelines when building Python RPM packages. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html and https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ for details. ******************************************************************************** !! self.initialize_options() running dist_info creating /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info writing /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/top_level.txt writing pbr to /builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt writing manifest file '/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/SOURCES.txt' [pbr] In git context, generating filelist from git warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution adding license file 'LICENSE' adding license file 'AUTHORS' writing manifest file '/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-modern-metadata-bo3ypx_l/ironic-29.1.0.dev109.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: ironic Building wheel for ironic (pyproject.toml): started Running command Building wheel for ironic (pyproject.toml) WARNING setuptools_scm._integration.setuptools pyproject.toml does not contain a tool.setuptools_scm section /usr/lib/python3.12/site-packages/setuptools/command/develop.py:39: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc creating build/lib/ironic/api copying ironic/api/wsgi.py -> build/lib/ironic/api copying ironic/api/method.py -> build/lib/ironic/api copying ironic/api/hooks.py -> build/lib/ironic/api copying ironic/api/functions.py -> build/lib/ironic/api copying ironic/api/config.py -> build/lib/ironic/api copying ironic/api/app.py -> build/lib/ironic/api copying ironic/api/__init__.py -> build/lib/ironic/api creating build/lib/ironic/objects copying ironic/objects/volume_target.py -> build/lib/ironic/objects copying ironic/objects/volume_connector.py -> build/lib/ironic/objects copying ironic/objects/trait.py -> build/lib/ironic/objects copying ironic/objects/runbook.py -> build/lib/ironic/objects copying ironic/objects/portgroup.py -> build/lib/ironic/objects copying ironic/objects/port.py -> build/lib/ironic/objects copying ironic/objects/notification.py -> build/lib/ironic/objects copying ironic/objects/node_inventory.py -> build/lib/ironic/objects copying ironic/objects/node_history.py -> build/lib/ironic/objects copying ironic/objects/node.py -> build/lib/ironic/objects copying ironic/objects/inspection_rule.py -> build/lib/ironic/objects copying ironic/objects/indirection.py -> build/lib/ironic/objects copying ironic/objects/firmware.py -> build/lib/ironic/objects copying ironic/objects/fields.py -> build/lib/ironic/objects copying ironic/objects/deployment.py -> build/lib/ironic/objects copying ironic/objects/deploy_template.py -> build/lib/ironic/objects copying ironic/objects/conductor.py -> build/lib/ironic/objects copying ironic/objects/chassis.py -> build/lib/ironic/objects copying ironic/objects/bios.py -> build/lib/ironic/objects copying ironic/objects/base.py -> build/lib/ironic/objects copying ironic/objects/allocation.py -> build/lib/ironic/objects copying ironic/objects/__init__.py -> build/lib/ironic/objects creating build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_verify.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_steps.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_servicing.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpc_service.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_periodics.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_inspection.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_deployments.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_cleaning.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_allocations.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ramdisk.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/graphical_console.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_power.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo creating build/lib/ironic/pxe_filter copying ironic/pxe_filter/service.py -> build/lib/ironic/pxe_filter copying ironic/pxe_filter/dnsmasq.py -> build/lib/ironic/pxe_filter copying ironic/pxe_filter/__init__.py -> build/lib/ironic/pxe_filter creating build/lib/ironic/tests/unit/console creating build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/test_authnone.py -> build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/test_auth.py -> build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/__init__.py -> build/lib/ironic/tests/unit/console/rfb creating build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/base.py -> build/lib/ironic/tests copying ironic/tests/__init__.py -> build/lib/ironic/tests creating build/lib/ironic/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking creating build/lib/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional creating build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage creating build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/vendor.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/power.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc creating build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node_inventory.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node_history.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_firmware.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deployment.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_allocation.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_utils.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_snmp.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_redfish.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_irmc.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ipmi.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ilo.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_generic.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_fake_hardware.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_drac.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_base.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/__init__.py -> build/lib/ironic/tests/unit/drivers copying ironic/drivers/utils.py -> build/lib/ironic/drivers copying ironic/drivers/snmp.py -> build/lib/ironic/drivers copying ironic/drivers/redfish.py -> build/lib/ironic/drivers copying ironic/drivers/irmc.py -> build/lib/ironic/drivers copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/intel_ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/ilo.py -> build/lib/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers copying ironic/drivers/generic.py -> build/lib/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers creating build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/external.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/__init__.py -> build/lib/ironic/drivers/modules/storage creating build/lib/ironic/drivers/modules/inspector creating build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/root_device.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/raid_device.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/ports.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/physical_network.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/memory.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/base.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/architecture.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/accelerators.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/__init__.py -> build/lib/ironic/drivers/modules/inspector/hooks creating build/lib/ironic/db creating build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_vnc.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_swift.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_release_mappings.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_raid.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_qemu_img.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_policy.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_oci_registry.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_nova.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_network.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_molds.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_mdns.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_kickstart_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_keystone.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_json_rpc.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_inspection_rule.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_images.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_image_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_image_publisher.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_glance_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_fsm.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_exception.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_context.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_checksum_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_args.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common creating build/lib/ironic/console creating build/lib/ironic/console/securityproxy copying ironic/console/securityproxy/rfb.py -> build/lib/ironic/console/securityproxy copying ironic/console/securityproxy/base.py -> build/lib/ironic/console/securityproxy copying ironic/console/securityproxy/__init__.py -> build/lib/ironic/console/securityproxy copying ironic/db/migration.py -> build/lib/ironic/db copying ironic/db/api.py -> build/lib/ironic/db copying ironic/db/__init__.py -> build/lib/ironic/db creating build/lib/ironic/tests/unit/console/container copying ironic/tests/unit/console/container/test_console_container.py -> build/lib/ironic/tests/unit/console/container copying ironic/tests/unit/console/container/__init__.py -> build/lib/ironic/tests/unit/console/container creating build/lib/ironic/api/controllers copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers copying ironic/tests/unit/console/__init__.py -> build/lib/ironic/tests/unit/console creating build/lib/ironic/tests/unit/command copying ironic/tests/unit/command/test_status.py -> build/lib/ironic/tests/unit/command copying ironic/tests/unit/command/test_dbsync.py -> build/lib/ironic/tests/unit/command copying ironic/tests/unit/command/test_conductor.py -> build/lib/ironic/tests/unit/command copying ironic/tests/unit/command/__init__.py -> build/lib/ironic/tests/unit/command creating build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/drivers/modules/inspector/lldp_tlvs.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/lldp_parsers.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/interface.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/client.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/agent.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/__init__.py -> build/lib/ironic/drivers/modules/inspector creating build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/shard.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/runbook.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/ramdisk.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/portgroup.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/notification_utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/node.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/inspection_rule.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/firmware.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/event.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/driver.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/deploy_template.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/conductor.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/allocation.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 creating build/lib/ironic/wsgi copying ironic/wsgi/__init__.py -> build/lib/ironic/wsgi creating build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_types.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_conductor.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf creating build/lib/ironic/common creating build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/validation.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/utils.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/operators.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/engine.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/base.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/actions.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/__init__.py -> build/lib/ironic/common/inspection_rules creating build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/server.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/client.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/__init__.py -> build/lib/ironic/common/json_rpc copying ironic/common/wsgi_service.py -> build/lib/ironic/common copying ironic/common/vnc.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/qemu_img.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/oci_registry.py -> build/lib/ironic/common copying ironic/common/nova.py -> build/lib/ironic/common copying ironic/common/neutron.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/molds.py -> build/lib/ironic/common copying ironic/common/metrics_utils.py -> build/lib/ironic/common copying ironic/common/metrics_statsd.py -> build/lib/ironic/common copying ironic/common/metrics_collector.py -> build/lib/ironic/common copying ironic/common/metrics.py -> build/lib/ironic/common copying ironic/common/mdns.py -> build/lib/ironic/common copying ironic/common/lessee_sources.py -> build/lib/ironic/common copying ironic/common/kickstart_utils.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/indicator_states.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/image_publisher.py -> build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/console_factory.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/components.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/checksum_utils.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/auth_basic.py -> build/lib/ironic/common copying ironic/common/async_steps.py -> build/lib/ironic/common copying ironic/common/args.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common creating build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity creating build/lib/ironic/tests/unit/db creating build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy creating build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi creating build/lib/ironic/dhcp copying ironic/dhcp/none.py -> build/lib/ironic/dhcp copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp copying ironic/dhcp/base.py -> build/lib/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp creating build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible creating build/lib/ironic/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/test_service.py -> build/lib/ironic/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/lib/ironic/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/__init__.py -> build/lib/ironic/tests/unit/pxe_filter creating build/lib/ironic/tests/unit/api creating build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers creating build/lib/ironic/common/glance_service copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/image_service.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service creating build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/vendor.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/utils.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/raid.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/power.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/management.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/inspect.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/graphical_console.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/firmware_utils.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/firmware.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/boot.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/bios.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/__init__.py -> build/lib/ironic/drivers/modules/redfish creating build/lib/ironic/tests/unit/api/validation copying ironic/tests/unit/api/validation/test_validators.py -> build/lib/ironic/tests/unit/api/validation copying ironic/tests/unit/api/validation/__init__.py -> build/lib/ironic/tests/unit/api/validation creating build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_shard.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_runbook.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_inspection_rule.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_event.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_collection.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 creating build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi creating build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network copying ironic/tests/unit/db/utils.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_targets.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_connectors.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_shard.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_runbooks.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_ports.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_portgroups.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_nodes.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_traits.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_tags.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_inventory.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_history.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_firmware_component.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_deploy_templates.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_conductor.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_bios_settings.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_allocations.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db creating build/lib/ironic/tests/unit/console/securityproxy copying ironic/tests/unit/console/securityproxy/test_websocketproxy.py -> build/lib/ironic/tests/unit/console/securityproxy copying ironic/tests/unit/console/securityproxy/test_rfb.py -> build/lib/ironic/tests/unit/console/securityproxy copying ironic/tests/unit/console/securityproxy/__init__.py -> build/lib/ironic/tests/unit/console/securityproxy creating build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/raid.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo creating build/lib/ironic/console/container copying ironic/console/container/systemd.py -> build/lib/ironic/console/container copying ironic/console/container/fake.py -> build/lib/ironic/console/container copying ironic/console/container/base.py -> build/lib/ironic/console/container copying ironic/console/container/__init__.py -> build/lib/ironic/console/container copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic creating build/lib/ironic/api/validation copying ironic/api/validation/validators.py -> build/lib/ironic/api/validation copying ironic/api/validation/__init__.py -> build/lib/ironic/api/validation copying ironic/console/websocketproxy.py -> build/lib/ironic/console copying ironic/console/novncproxy_service.py -> build/lib/ironic/console copying ironic/console/__init__.py -> build/lib/ironic/console copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ramdisk.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_graphical_console.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_power.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_base.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_dnsmasq.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp creating build/lib/ironic/conductor copying ironic/conductor/verify.py -> build/lib/ironic/conductor copying ironic/conductor/utils.py -> build/lib/ironic/conductor copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor copying ironic/conductor/steps.py -> build/lib/ironic/conductor copying ironic/conductor/servicing.py -> build/lib/ironic/conductor copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor copying ironic/conductor/rpc_service.py -> build/lib/ironic/conductor copying ironic/conductor/periodics.py -> build/lib/ironic/conductor copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor copying ironic/conductor/manager.py -> build/lib/ironic/conductor copying ironic/conductor/inspection.py -> build/lib/ironic/conductor copying ironic/conductor/deployments.py -> build/lib/ironic/conductor copying ironic/conductor/cleaning.py -> build/lib/ironic/conductor copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor copying ironic/conductor/allocations.py -> build/lib/ironic/conductor copying ironic/conductor/__init__.py -> build/lib/ironic/conductor creating build/lib/ironic/conf copying ironic/conf/vnc.py -> build/lib/ironic/conf copying ironic/conf/types.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/sensor_data.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/oci.py -> build/lib/ironic/conf copying ironic/conf/nova.py -> build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/molds.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/mdns.py -> build/lib/ironic/conf copying ironic/conf/json_rpc.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/inventory.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/fake.py -> build/lib/ironic/conf copying ironic/conf/exception.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf copying ironic/conf/dnsmasq.py -> build/lib/ironic/conf copying ironic/conf/disk_utils.py -> build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/anaconda.py -> build/lib/ironic/conf copying ironic/conf/agent_containers.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf creating build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network creating build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_firmware.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/redfish creating build/lib/ironic/api/middleware copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/auth_public_routes.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware creating build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/utils.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/power.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/management.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/inspect.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/boot.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/bios.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/__init__.py -> build/lib/ironic/drivers/modules/drac creating build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac creating build/lib/ironic/console/rfb copying ironic/console/rfb/auths.py -> build/lib/ironic/console/rfb copying ironic/console/rfb/authnone.py -> build/lib/ironic/console/rfb copying ironic/console/rfb/auth.py -> build/lib/ironic/console/rfb copying ironic/console/rfb/__init__.py -> build/lib/ironic/console/rfb creating build/lib/ironic/command copying ironic/command/status.py -> build/lib/ironic/command copying ironic/command/singleprocess.py -> build/lib/ironic/command copying ironic/command/pxe_filter.py -> build/lib/ironic/command copying ironic/command/novncproxy.py -> build/lib/ironic/command copying ironic/command/dbsync.py -> build/lib/ironic/command copying ironic/command/conductor.py -> build/lib/ironic/command copying ironic/command/api.py -> build/lib/ironic/command copying ironic/command/__init__.py -> build/lib/ironic/command creating build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks running egg_info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt writing requirements to ironic.egg-info/requires.txt writing top-level names to ironic.egg-info/top_level.txt writing pbr to ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt [pbr] In git context, generating filelist from git warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution adding license file 'LICENSE' adding license file 'AUTHORS' writing manifest file 'ironic.egg-info/SOURCES.txt' /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.api.schemas.v1' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.api.schemas.v1' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.api.schemas.v1' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.api.schemas.v1' to be distributed and are already explicitly excluding 'ironic.api.schemas.v1' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.db.sqlalchemy.alembic' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.db.sqlalchemy.alembic' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.db.sqlalchemy.alembic' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.db.sqlalchemy.alembic' to be distributed and are already explicitly excluding 'ironic.db.sqlalchemy.alembic' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.db.sqlalchemy.alembic.versions' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.db.sqlalchemy.alembic.versions' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.db.sqlalchemy.alembic.versions' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.db.sqlalchemy.alembic.versions' to be distributed and are already explicitly excluding 'ironic.db.sqlalchemy.alembic.versions' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.callback_plugins' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.callback_plugins' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.callback_plugins' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.callback_plugins' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.callback_plugins' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.library' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.library' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.library' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.library' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.library' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' to be distributed and are already explicitly excluding 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.tests.json_samples' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.json_samples' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.tests.json_samples' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.tests.json_samples' to be distributed and are already explicitly excluding 'ironic.tests.json_samples' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.tests.unit.common.drive_samples' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.common.drive_samples' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.tests.unit.common.drive_samples' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.tests.unit.common.drive_samples' to be distributed and are already explicitly excluding 'ironic.tests.unit.common.drive_samples' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.tests.unit.common.json_samples' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.common.json_samples' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.tests.unit.common.json_samples' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.tests.unit.common.json_samples' to be distributed and are already explicitly excluding 'ironic.tests.unit.common.json_samples' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'ironic.tests.unit.drivers.modules.network.json_samples' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.drivers.modules.network.json_samples' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'ironic.tests.unit.drivers.modules.network.json_samples' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'ironic.tests.unit.drivers.modules.network.json_samples' to be distributed and are already explicitly excluding 'ironic.tests.unit.drivers.modules.network.json_samples' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) creating build/lib/ironic/api/schemas creating build/lib/ironic/api/schemas/v1 copying ironic/api/schemas/v1/shard.py -> build/lib/ironic/api/schemas/v1 copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/initial_grub_cfg.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ks.cfg.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules creating build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/systems_collection_dual.json -> build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/systems_collection_single.json -> build/lib/ironic/tests/json_samples copying ironic/tests/unit/drivers/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers copying ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic creating build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions creating build/lib/ironic/tests/unit/common/drive_samples copying ironic/tests/unit/common/drive_samples/config_drive -> build/lib/ironic/tests/unit/common/drive_samples creating build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_network_show.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_port_show.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins creating build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library creating build/lib/ironic/drivers/modules/ansible/playbooks/roles creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/console/container/ironic-console.container.template -> build/lib/ironic/console/container copying ironic/tests/unit/api/test_acl_basic.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api creating build/lib/ironic/tests/unit/drivers/modules/network/json_samples copying ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> build/lib/ironic/tests/unit/drivers/modules/network/json_samples installing to build/bdist.linux-x86_64/wheel running install [pbr] Writing ChangeLog [pbr] Generating ChangeLog [pbr] ChangeLog complete (0.0s) [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running install_lib creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/ironic creating build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/api.py -> build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/dbsync.py -> build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/novncproxy.py -> build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/pxe_filter.py -> build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/singleprocess.py -> build/bdist.linux-x86_64/wheel/ironic/command copying build/lib/ironic/command/status.py -> build/bdist.linux-x86_64/wheel/ironic/command creating build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/agent.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/agent_containers.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/anaconda.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/ansible.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/api.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/audit.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/auth.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/console.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/database.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/default.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/deploy.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/dhcp.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/disk_utils.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/drac.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/exception.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/fake.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/glance.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/healthcheck.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/ilo.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/inspector.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/inventory.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/irmc.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/json_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/mdns.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/metrics.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/molds.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/nova.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/oci.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/opts.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/pxe.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/redfish.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/sensor_data.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/service_catalog.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/snmp.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/swift.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/types.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/vnc.py -> build/bdist.linux-x86_64/wheel/ironic/conf creating build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/allocations.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/base_manager.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/cleaning.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/deployments.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/inspection.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/manager.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/periodics.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/rpcapi.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/servicing.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/steps.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/task_manager.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/utils.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/conductor/verify.py -> build/bdist.linux-x86_64/wheel/ironic/conductor copying build/lib/ironic/__init__.py -> build/bdist.linux-x86_64/wheel/ironic copying build/lib/ironic/version.py -> build/bdist.linux-x86_64/wheel/ironic creating build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp creating build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/isolinux_config.template -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/grub_conf.template -> build/bdist.linux-x86_64/wheel/ironic/common creating build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/args.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/async_steps.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/auth_basic.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/boot_devices.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/boot_modes.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/components.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/config.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/console_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/context.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/dhcp_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/exception.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/faults.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/fsm.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/i18n.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/images.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/indicator_states.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/keystone.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/lessee_sources.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/mdns.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics_collector.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics_statsd.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/molds.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/network.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/nova.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/policy.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/profiler.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/raid.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/rpc.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/service.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/states.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/swift.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/vnc.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/common creating build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/client.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/server.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc creating build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules copying build/lib/ironic/common/inspection_rules/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules copying build/lib/ironic/common/inspection_rules/actions.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules copying build/lib/ironic/common/inspection_rules/base.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules copying build/lib/ironic/common/inspection_rules/engine.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules copying build/lib/ironic/common/inspection_rules/operators.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules copying build/lib/ironic/common/inspection_rules/utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules copying build/lib/ironic/common/inspection_rules/validation.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules creating build/bdist.linux-x86_64/wheel/ironic/wsgi copying build/lib/ironic/wsgi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/wsgi creating build/bdist.linux-x86_64/wheel/ironic/console creating build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/auth.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/authnone.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/auths.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console copying build/lib/ironic/console/novncproxy_service.py -> build/bdist.linux-x86_64/wheel/ironic/console copying build/lib/ironic/console/websocketproxy.py -> build/bdist.linux-x86_64/wheel/ironic/console creating build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/ironic-console.container.template -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/base.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/fake.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/systemd.py -> build/bdist.linux-x86_64/wheel/ironic/console/container creating build/bdist.linux-x86_64/wheel/ironic/console/securityproxy copying build/lib/ironic/console/securityproxy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/securityproxy copying build/lib/ironic/console/securityproxy/base.py -> build/bdist.linux-x86_64/wheel/ironic/console/securityproxy copying build/lib/ironic/console/securityproxy/rfb.py -> build/bdist.linux-x86_64/wheel/ironic/console/securityproxy creating build/bdist.linux-x86_64/wheel/ironic/db copying build/lib/ironic/db/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db copying build/lib/ironic/db/api.py -> build/bdist.linux-x86_64/wheel/ironic/db copying build/lib/ironic/db/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/README -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic.ini -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/api.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy creating build/bdist.linux-x86_64/wheel/ironic/hacking copying build/lib/ironic/hacking/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/hacking copying build/lib/ironic/hacking/checks.py -> build/bdist.linux-x86_64/wheel/ironic/hacking creating build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/service.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter creating build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/raid_config_schema.json -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/drac.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/fake_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/generic.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/hardware_type.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/ilo.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/intel_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/irmc.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/redfish.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/snmp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ks.cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/initial_grub_cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/console.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/flat.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/firmware_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/graphical_console.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/ansible/deploy.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/agent.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/client.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/interface.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/lldp_parsers.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/lldp_tlvs.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/architecture.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/memory.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/ports.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/root_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/external.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_client.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/console_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/deploy_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/fake.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/graphical_console.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/image_cache.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/image_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/inspect_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipmitool.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop_mgmt.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/snmp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules creating build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/allocation.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/base.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/bios.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/chassis.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/deployment.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/fields.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/indirection.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/node.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/node_history.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/notification.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/port.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/runbook.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/trait.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/objects creating build/bdist.linux-x86_64/wheel/ironic/api creating build/bdist.linux-x86_64/wheel/ironic/api/schemas creating build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1 copying build/lib/ironic/api/schemas/v1/shard.py -> build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1 creating build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/auth_public_routes.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/json_ext.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/parsable_error.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware creating build/bdist.linux-x86_64/wheel/ironic/api/validation copying build/lib/ironic/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/validation copying build/lib/ironic/api/validation/validators.py -> build/bdist.linux-x86_64/wheel/ironic/api/validation creating build/bdist.linux-x86_64/wheel/ironic/api/controllers creating build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/network-data-schema.json -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/allocation.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/bios.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/chassis.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/collection.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/driver.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/event.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/node.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/port.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/runbook.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/shard.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/utils.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/versions.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/base.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/link.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/root.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/version.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/app.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/config.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/functions.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/hooks.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/method.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/wsgi.py -> build/bdist.linux-x86_64/wheel/ironic/api creating build/bdist.linux-x86_64/wheel/ironic/tests creating build/bdist.linux-x86_64/wheel/ironic/tests/json_samples copying build/lib/ironic/tests/json_samples/systems_collection_single.json -> build/bdist.linux-x86_64/wheel/ironic/tests/json_samples copying build/lib/ironic/tests/json_samples/systems_collection_dual.json -> build/bdist.linux-x86_64/wheel/ironic/tests/json_samples copying build/lib/ironic/tests/json_samples/network_data.json -> build/bdist.linux-x86_64/wheel/ironic/tests/json_samples creating build/bdist.linux-x86_64/wheel/ironic/tests/functional copying build/lib/ironic/tests/functional/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/functional copying build/lib/ironic/tests/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests copying build/lib/ironic/tests/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests creating build/bdist.linux-x86_64/wheel/ironic/tests/unit creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_legacy.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl_basic.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_audit.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_functions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_hooks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_method.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_proxy_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation copying build/lib/ironic/tests/unit/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation copying build/lib/ironic/tests/unit/api/validation/test_validators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_collection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_event.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_node.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_port.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_runbook.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_shard.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_versions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter copying build/lib/ironic/tests/unit/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter copying build/lib/ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter copying build/lib/ironic/tests/unit/pxe_filter/test_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_allocations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_api.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_bios_settings.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_firmware_component.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_history.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_tags.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_traits.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_nodes.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_portgroups.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_ports.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_runbooks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_shard.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_volume_targets.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_models.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_types.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_types.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/command copying build/lib/ironic/tests/unit/command/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/command copying build/lib/ironic/tests/unit/command/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/command copying build/lib/ironic/tests/unit/command/test_dbsync.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/command copying build/lib/ironic/tests/unit/command/test_status.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/command creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples copying build/lib/ironic/tests/unit/common/drive_samples/config_drive -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples copying build/lib/ironic/tests/unit/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_args.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_cinder.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_context.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_exception.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_fsm.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_glance_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_images.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_json_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_keystone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_mdns.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_molds.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_nova.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_policy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_states.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_swift.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_vnc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_deployment.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_fields.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_firmware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node_history.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_notification.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_objects.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_port.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_trait.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/securityproxy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/securityproxy/test_rfb.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/securityproxy/test_websocketproxy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container copying build/lib/ironic/tests/unit/console/container/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container copying build/lib/ironic/tests/unit/console/container/test_console_container.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb copying build/lib/ironic/tests/unit/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb copying build/lib/ironic/tests/unit/console/rfb/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb copying build/lib/ironic/tests/unit/console/rfb/test_authnone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb copying build/lib/ironic/tests/unit/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/policy_fixture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/raid_constants.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/stubs.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_cleaning.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_deployments.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_inspection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_periodics.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_servicing.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_steps.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_verify.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot-fallback.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_drac.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_fake_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_generic.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ilo.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_irmc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_redfish.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_snmp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_firmware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_vendor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/redfish creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network/json_samples copying build/lib/ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network/json_samples copying build/lib/ironic/tests/unit/drivers/modules/network/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_noop.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_client.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_console_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_graphical_console.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_image_cache.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_image_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ipxe.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_noop.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_pxe.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_snmp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc running install_data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/etc creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/etc/ironic copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/etc/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/etc/ironic/rootwrap.d/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container copying tools/vnc-container/README.rst -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/ copying tools/vnc-container/Containerfile -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/bin copying tools/vnc-container/bin/start-xvfb.sh -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/bin copying tools/vnc-container/bin/start-selenium-browser.py -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/bin copying tools/vnc-container/bin/start-browser-x11vnc.sh -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/bin creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/drivers creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/drivers/fake copying tools/vnc-container/drivers/fake/ironic_mascot_color.png -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/drivers/fake copying tools/vnc-container/drivers/fake/index.html -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/drivers/fake running install_egg_info Copying ironic.egg-info to build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109-py3.12.egg-info running install_scripts Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.data/scripts creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev109.dist-info/WHEEL creating '/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir/pip-wheel-of9n5ln_/.tmp-fn75f29_/ironic-29.1.0.dev109-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'ironic/__init__.py' adding 'ironic/version.py' adding 'ironic/api/__init__.py' adding 'ironic/api/app.py' adding 'ironic/api/config.py' adding 'ironic/api/functions.py' adding 'ironic/api/hooks.py' adding 'ironic/api/method.py' adding 'ironic/api/wsgi.py' adding 'ironic/api/controllers/__init__.py' adding 'ironic/api/controllers/base.py' adding 'ironic/api/controllers/link.py' adding 'ironic/api/controllers/root.py' adding 'ironic/api/controllers/version.py' adding 'ironic/api/controllers/v1/__init__.py' adding 'ironic/api/controllers/v1/allocation.py' adding 'ironic/api/controllers/v1/bios.py' adding 'ironic/api/controllers/v1/chassis.py' adding 'ironic/api/controllers/v1/collection.py' adding 'ironic/api/controllers/v1/conductor.py' adding 'ironic/api/controllers/v1/deploy_template.py' adding 'ironic/api/controllers/v1/driver.py' adding 'ironic/api/controllers/v1/event.py' adding 'ironic/api/controllers/v1/firmware.py' adding 'ironic/api/controllers/v1/inspection_rule.py' adding 'ironic/api/controllers/v1/network-data-schema.json' adding 'ironic/api/controllers/v1/node.py' adding 'ironic/api/controllers/v1/notification_utils.py' adding 'ironic/api/controllers/v1/port.py' adding 'ironic/api/controllers/v1/portgroup.py' adding 'ironic/api/controllers/v1/ramdisk.py' adding 'ironic/api/controllers/v1/runbook.py' adding 'ironic/api/controllers/v1/shard.py' adding 'ironic/api/controllers/v1/utils.py' adding 'ironic/api/controllers/v1/versions.py' adding 'ironic/api/controllers/v1/volume.py' adding 'ironic/api/controllers/v1/volume_connector.py' adding 'ironic/api/controllers/v1/volume_target.py' adding 'ironic/api/middleware/__init__.py' adding 'ironic/api/middleware/auth_public_routes.py' adding 'ironic/api/middleware/json_ext.py' adding 'ironic/api/middleware/parsable_error.py' adding 'ironic/api/schemas/v1/shard.py' adding 'ironic/api/validation/__init__.py' adding 'ironic/api/validation/validators.py' adding 'ironic/command/__init__.py' adding 'ironic/command/api.py' adding 'ironic/command/conductor.py' adding 'ironic/command/dbsync.py' adding 'ironic/command/novncproxy.py' adding 'ironic/command/pxe_filter.py' adding 'ironic/command/singleprocess.py' adding 'ironic/command/status.py' adding 'ironic/common/__init__.py' adding 'ironic/common/args.py' adding 'ironic/common/async_steps.py' adding 'ironic/common/auth_basic.py' adding 'ironic/common/boot_devices.py' adding 'ironic/common/boot_modes.py' adding 'ironic/common/checksum_utils.py' adding 'ironic/common/cinder.py' adding 'ironic/common/components.py' adding 'ironic/common/config.py' adding 'ironic/common/console_factory.py' adding 'ironic/common/context.py' adding 'ironic/common/dhcp_factory.py' adding 'ironic/common/driver_factory.py' adding 'ironic/common/exception.py' adding 'ironic/common/faults.py' adding 'ironic/common/fsm.py' adding 'ironic/common/grub_conf.template' adding 'ironic/common/hash_ring.py' adding 'ironic/common/i18n.py' adding 'ironic/common/image_publisher.py' adding 'ironic/common/image_service.py' adding 'ironic/common/images.py' adding 'ironic/common/indicator_states.py' adding 'ironic/common/isolinux_config.template' adding 'ironic/common/keystone.py' adding 'ironic/common/kickstart_utils.py' adding 'ironic/common/lessee_sources.py' adding 'ironic/common/mdns.py' adding 'ironic/common/metrics.py' adding 'ironic/common/metrics_collector.py' adding 'ironic/common/metrics_statsd.py' adding 'ironic/common/metrics_utils.py' adding 'ironic/common/molds.py' adding 'ironic/common/network.py' adding 'ironic/common/neutron.py' adding 'ironic/common/nova.py' adding 'ironic/common/oci_registry.py' adding 'ironic/common/policy.py' adding 'ironic/common/profiler.py' adding 'ironic/common/pxe_utils.py' adding 'ironic/common/qemu_img.py' adding 'ironic/common/raid.py' adding 'ironic/common/release_mappings.py' adding 'ironic/common/rpc.py' adding 'ironic/common/rpc_service.py' adding 'ironic/common/service.py' adding 'ironic/common/states.py' adding 'ironic/common/swift.py' adding 'ironic/common/utils.py' adding 'ironic/common/vnc.py' adding 'ironic/common/wsgi_service.py' adding 'ironic/common/glance_service/__init__.py' adding 'ironic/common/glance_service/image_service.py' adding 'ironic/common/glance_service/service_utils.py' adding 'ironic/common/inspection_rules/__init__.py' adding 'ironic/common/inspection_rules/actions.py' adding 'ironic/common/inspection_rules/base.py' adding 'ironic/common/inspection_rules/engine.py' adding 'ironic/common/inspection_rules/operators.py' adding 'ironic/common/inspection_rules/utils.py' adding 'ironic/common/inspection_rules/validation.py' adding 'ironic/common/json_rpc/__init__.py' adding 'ironic/common/json_rpc/client.py' adding 'ironic/common/json_rpc/server.py' adding 'ironic/conductor/__init__.py' adding 'ironic/conductor/allocations.py' adding 'ironic/conductor/base_manager.py' adding 'ironic/conductor/cleaning.py' adding 'ironic/conductor/deployments.py' adding 'ironic/conductor/inspection.py' adding 'ironic/conductor/manager.py' adding 'ironic/conductor/notification_utils.py' adding 'ironic/conductor/periodics.py' adding 'ironic/conductor/rpc_service.py' adding 'ironic/conductor/rpcapi.py' adding 'ironic/conductor/servicing.py' adding 'ironic/conductor/steps.py' adding 'ironic/conductor/task_manager.py' adding 'ironic/conductor/utils.py' adding 'ironic/conductor/verify.py' adding 'ironic/conf/__init__.py' adding 'ironic/conf/agent.py' adding 'ironic/conf/agent_containers.py' adding 'ironic/conf/anaconda.py' adding 'ironic/conf/ansible.py' adding 'ironic/conf/api.py' adding 'ironic/conf/audit.py' adding 'ironic/conf/auth.py' adding 'ironic/conf/cinder.py' adding 'ironic/conf/conductor.py' adding 'ironic/conf/console.py' adding 'ironic/conf/database.py' adding 'ironic/conf/default.py' adding 'ironic/conf/deploy.py' adding 'ironic/conf/dhcp.py' adding 'ironic/conf/disk_utils.py' adding 'ironic/conf/dnsmasq.py' adding 'ironic/conf/drac.py' adding 'ironic/conf/exception.py' adding 'ironic/conf/fake.py' adding 'ironic/conf/glance.py' adding 'ironic/conf/healthcheck.py' adding 'ironic/conf/ilo.py' adding 'ironic/conf/inspector.py' adding 'ironic/conf/inventory.py' adding 'ironic/conf/ipmi.py' adding 'ironic/conf/irmc.py' adding 'ironic/conf/json_rpc.py' adding 'ironic/conf/mdns.py' adding 'ironic/conf/metrics.py' adding 'ironic/conf/molds.py' adding 'ironic/conf/neutron.py' adding 'ironic/conf/nova.py' adding 'ironic/conf/oci.py' adding 'ironic/conf/opts.py' adding 'ironic/conf/pxe.py' adding 'ironic/conf/redfish.py' adding 'ironic/conf/sensor_data.py' adding 'ironic/conf/service_catalog.py' adding 'ironic/conf/snmp.py' adding 'ironic/conf/swift.py' adding 'ironic/conf/types.py' adding 'ironic/conf/vnc.py' adding 'ironic/console/__init__.py' adding 'ironic/console/novncproxy_service.py' adding 'ironic/console/websocketproxy.py' adding 'ironic/console/container/__init__.py' adding 'ironic/console/container/base.py' adding 'ironic/console/container/fake.py' adding 'ironic/console/container/ironic-console.container.template' adding 'ironic/console/container/systemd.py' adding 'ironic/console/rfb/__init__.py' adding 'ironic/console/rfb/auth.py' adding 'ironic/console/rfb/authnone.py' adding 'ironic/console/rfb/auths.py' adding 'ironic/console/securityproxy/__init__.py' adding 'ironic/console/securityproxy/base.py' adding 'ironic/console/securityproxy/rfb.py' adding 'ironic/db/__init__.py' adding 'ironic/db/api.py' adding 'ironic/db/migration.py' adding 'ironic/db/sqlalchemy/__init__.py' adding 'ironic/db/sqlalchemy/alembic.ini' adding 'ironic/db/sqlalchemy/api.py' adding 'ironic/db/sqlalchemy/migration.py' adding 'ironic/db/sqlalchemy/models.py' adding 'ironic/db/sqlalchemy/alembic/README' adding 'ironic/db/sqlalchemy/alembic/env.py' adding 'ironic/db/sqlalchemy/alembic/script.py.mako' adding 'ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py' adding 'ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py' adding 'ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py' adding 'ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py' adding 'ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py' adding 'ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py' adding 'ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py' adding 'ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py' adding 'ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py' adding 'ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py' adding 'ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py' adding 'ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py' adding 'ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py' adding 'ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py' adding 'ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py' adding 'ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py' adding 'ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py' adding 'ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py' adding 'ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py' adding 'ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py' adding 'ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py' adding 'ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py' adding 'ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py' adding 'ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py' adding 'ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py' adding 'ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py' adding 'ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py' adding 'ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py' adding 'ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py' adding 'ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py' adding 'ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py' adding 'ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py' adding 'ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py' adding 'ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py' adding 'ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py' adding 'ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py' adding 'ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py' adding 'ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py' adding 'ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py' adding 'ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py' adding 'ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py' adding 'ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py' adding 'ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py' adding 'ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py' adding 'ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py' adding 'ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py' adding 'ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py' adding 'ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py' adding 'ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py' adding 'ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py' adding 'ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py' adding 'ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py' adding 'ironic/dhcp/__init__.py' adding 'ironic/dhcp/base.py' adding 'ironic/dhcp/dnsmasq.py' adding 'ironic/dhcp/neutron.py' adding 'ironic/dhcp/none.py' adding 'ironic/drivers/__init__.py' adding 'ironic/drivers/base.py' adding 'ironic/drivers/drac.py' adding 'ironic/drivers/fake_hardware.py' adding 'ironic/drivers/generic.py' adding 'ironic/drivers/hardware_type.py' adding 'ironic/drivers/ilo.py' adding 'ironic/drivers/intel_ipmi.py' adding 'ironic/drivers/ipmi.py' adding 'ironic/drivers/irmc.py' adding 'ironic/drivers/raid_config_schema.json' adding 'ironic/drivers/redfish.py' adding 'ironic/drivers/snmp.py' adding 'ironic/drivers/utils.py' adding 'ironic/drivers/modules/__init__.py' adding 'ironic/drivers/modules/agent.py' adding 'ironic/drivers/modules/agent_base.py' adding 'ironic/drivers/modules/agent_client.py' adding 'ironic/drivers/modules/agent_power.py' adding 'ironic/drivers/modules/boot.ipxe' adding 'ironic/drivers/modules/boot_mode_utils.py' adding 'ironic/drivers/modules/console_utils.py' adding 'ironic/drivers/modules/deploy_utils.py' adding 'ironic/drivers/modules/fake.py' adding 'ironic/drivers/modules/graphical_console.py' adding 'ironic/drivers/modules/image_cache.py' adding 'ironic/drivers/modules/image_utils.py' adding 'ironic/drivers/modules/initial_grub_cfg.template' adding 'ironic/drivers/modules/inspect_utils.py' adding 'ironic/drivers/modules/ipmitool.py' adding 'ironic/drivers/modules/ipxe.py' adding 'ironic/drivers/modules/ipxe_config.template' adding 'ironic/drivers/modules/ks.cfg.template' adding 'ironic/drivers/modules/noop.py' adding 'ironic/drivers/modules/noop_mgmt.py' adding 'ironic/drivers/modules/pxe.py' adding 'ironic/drivers/modules/pxe_base.py' adding 'ironic/drivers/modules/pxe_config.template' adding 'ironic/drivers/modules/pxe_grub_config.template' adding 'ironic/drivers/modules/ramdisk.py' adding 'ironic/drivers/modules/snmp.py' adding 'ironic/drivers/modules/ansible/__init__.py' adding 'ironic/drivers/modules/ansible/deploy.py' adding 'ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml' adding 'ironic/drivers/modules/ansible/playbooks/ansible.cfg' adding 'ironic/drivers/modules/ansible/playbooks/clean.yaml' adding 'ironic/drivers/modules/ansible/playbooks/clean_steps.yaml' adding 'ironic/drivers/modules/ansible/playbooks/deploy.yaml' adding 'ironic/drivers/modules/ansible/playbooks/inventory' adding 'ironic/drivers/modules/ansible/playbooks/shutdown.yaml' adding 'ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini' adding 'ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py' adding 'ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py' adding 'ironic/drivers/modules/ansible/playbooks/library/root_hints.py' adding 'ironic/drivers/modules/ansible/playbooks/library/stream_url.py' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml' adding 'ironic/drivers/modules/drac/__init__.py' adding 'ironic/drivers/modules/drac/bios.py' adding 'ironic/drivers/modules/drac/boot.py' adding 'ironic/drivers/modules/drac/inspect.py' adding 'ironic/drivers/modules/drac/management.py' adding 'ironic/drivers/modules/drac/power.py' adding 'ironic/drivers/modules/drac/raid.py' adding 'ironic/drivers/modules/drac/utils.py' adding 'ironic/drivers/modules/drac/vendor_passthru.py' adding 'ironic/drivers/modules/ilo/__init__.py' adding 'ironic/drivers/modules/ilo/bios.py' adding 'ironic/drivers/modules/ilo/boot.py' adding 'ironic/drivers/modules/ilo/common.py' adding 'ironic/drivers/modules/ilo/console.py' adding 'ironic/drivers/modules/ilo/firmware_processor.py' adding 'ironic/drivers/modules/ilo/inspect.py' adding 'ironic/drivers/modules/ilo/management.py' adding 'ironic/drivers/modules/ilo/power.py' adding 'ironic/drivers/modules/ilo/raid.py' adding 'ironic/drivers/modules/ilo/vendor.py' adding 'ironic/drivers/modules/inspector/__init__.py' adding 'ironic/drivers/modules/inspector/agent.py' adding 'ironic/drivers/modules/inspector/client.py' adding 'ironic/drivers/modules/inspector/interface.py' adding 'ironic/drivers/modules/inspector/lldp_parsers.py' adding 'ironic/drivers/modules/inspector/lldp_tlvs.py' adding 'ironic/drivers/modules/inspector/hooks/__init__.py' adding 'ironic/drivers/modules/inspector/hooks/accelerators.py' adding 'ironic/drivers/modules/inspector/hooks/architecture.py' adding 'ironic/drivers/modules/inspector/hooks/base.py' adding 'ironic/drivers/modules/inspector/hooks/boot_mode.py' adding 'ironic/drivers/modules/inspector/hooks/cpu_capabilities.py' adding 'ironic/drivers/modules/inspector/hooks/extra_hardware.py' adding 'ironic/drivers/modules/inspector/hooks/known_accelerators.yaml' adding 'ironic/drivers/modules/inspector/hooks/local_link_connection.py' adding 'ironic/drivers/modules/inspector/hooks/memory.py' adding 'ironic/drivers/modules/inspector/hooks/parse_lldp.py' adding 'ironic/drivers/modules/inspector/hooks/pci_devices.py' adding 'ironic/drivers/modules/inspector/hooks/physical_network.py' adding 'ironic/drivers/modules/inspector/hooks/ports.py' adding 'ironic/drivers/modules/inspector/hooks/raid_device.py' adding 'ironic/drivers/modules/inspector/hooks/ramdisk_error.py' adding 'ironic/drivers/modules/inspector/hooks/root_device.py' adding 'ironic/drivers/modules/inspector/hooks/validate_interfaces.py' adding 'ironic/drivers/modules/intel_ipmi/__init__.py' adding 'ironic/drivers/modules/intel_ipmi/management.py' adding 'ironic/drivers/modules/irmc/__init__.py' adding 'ironic/drivers/modules/irmc/bios.py' adding 'ironic/drivers/modules/irmc/boot.py' adding 'ironic/drivers/modules/irmc/common.py' adding 'ironic/drivers/modules/irmc/inspect.py' adding 'ironic/drivers/modules/irmc/management.py' adding 'ironic/drivers/modules/irmc/power.py' adding 'ironic/drivers/modules/irmc/raid.py' adding 'ironic/drivers/modules/irmc/vendor.py' adding 'ironic/drivers/modules/network/__init__.py' adding 'ironic/drivers/modules/network/common.py' adding 'ironic/drivers/modules/network/flat.py' adding 'ironic/drivers/modules/network/neutron.py' adding 'ironic/drivers/modules/network/noop.py' adding 'ironic/drivers/modules/redfish/__init__.py' adding 'ironic/drivers/modules/redfish/bios.py' adding 'ironic/drivers/modules/redfish/boot.py' adding 'ironic/drivers/modules/redfish/firmware.py' adding 'ironic/drivers/modules/redfish/firmware_utils.py' adding 'ironic/drivers/modules/redfish/graphical_console.py' adding 'ironic/drivers/modules/redfish/inspect.py' adding 'ironic/drivers/modules/redfish/management.py' adding 'ironic/drivers/modules/redfish/power.py' adding 'ironic/drivers/modules/redfish/raid.py' adding 'ironic/drivers/modules/redfish/utils.py' adding 'ironic/drivers/modules/redfish/vendor.py' adding 'ironic/drivers/modules/storage/__init__.py' adding 'ironic/drivers/modules/storage/cinder.py' adding 'ironic/drivers/modules/storage/external.py' adding 'ironic/drivers/modules/storage/noop.py' adding 'ironic/hacking/__init__.py' adding 'ironic/hacking/checks.py' adding 'ironic/objects/__init__.py' adding 'ironic/objects/allocation.py' adding 'ironic/objects/base.py' adding 'ironic/objects/bios.py' adding 'ironic/objects/chassis.py' adding 'ironic/objects/conductor.py' adding 'ironic/objects/deploy_template.py' adding 'ironic/objects/deployment.py' adding 'ironic/objects/fields.py' adding 'ironic/objects/firmware.py' adding 'ironic/objects/indirection.py' adding 'ironic/objects/inspection_rule.py' adding 'ironic/objects/node.py' adding 'ironic/objects/node_history.py' adding 'ironic/objects/node_inventory.py' adding 'ironic/objects/notification.py' adding 'ironic/objects/port.py' adding 'ironic/objects/portgroup.py' adding 'ironic/objects/runbook.py' adding 'ironic/objects/trait.py' adding 'ironic/objects/volume_connector.py' adding 'ironic/objects/volume_target.py' adding 'ironic/pxe_filter/__init__.py' adding 'ironic/pxe_filter/dnsmasq.py' adding 'ironic/pxe_filter/service.py' adding 'ironic/tests/__init__.py' adding 'ironic/tests/base.py' adding 'ironic/tests/functional/__init__.py' adding 'ironic/tests/json_samples/network_data.json' adding 'ironic/tests/json_samples/systems_collection_dual.json' adding 'ironic/tests/json_samples/systems_collection_single.json' adding 'ironic/tests/unit/__init__.py' adding 'ironic/tests/unit/policy_fixture.py' adding 'ironic/tests/unit/raid_constants.py' adding 'ironic/tests/unit/stubs.py' adding 'ironic/tests/unit/test_base.py' adding 'ironic/tests/unit/api/__init__.py' adding 'ironic/tests/unit/api/base.py' adding 'ironic/tests/unit/api/test_acl.py' adding 'ironic/tests/unit/api/test_acl_basic.yaml' adding 'ironic/tests/unit/api/test_audit.py' adding 'ironic/tests/unit/api/test_functions.py' adding 'ironic/tests/unit/api/test_healthcheck.py' adding 'ironic/tests/unit/api/test_hooks.py' adding 'ironic/tests/unit/api/test_method.py' adding 'ironic/tests/unit/api/test_middleware.py' adding 'ironic/tests/unit/api/test_ospmiddleware.py' adding 'ironic/tests/unit/api/test_proxy_middleware.py' adding 'ironic/tests/unit/api/test_rbac_legacy.yaml' adding 'ironic/tests/unit/api/test_rbac_project_scoped.yaml' adding 'ironic/tests/unit/api/test_rbac_system_scoped.yaml' adding 'ironic/tests/unit/api/test_root.py' adding 'ironic/tests/unit/api/utils.py' adding 'ironic/tests/unit/api/controllers/__init__.py' adding 'ironic/tests/unit/api/controllers/test_base.py' adding 'ironic/tests/unit/api/controllers/v1/__init__.py' adding 'ironic/tests/unit/api/controllers/v1/test_allocation.py' adding 'ironic/tests/unit/api/controllers/v1/test_chassis.py' adding 'ironic/tests/unit/api/controllers/v1/test_collection.py' adding 'ironic/tests/unit/api/controllers/v1/test_conductor.py' adding 'ironic/tests/unit/api/controllers/v1/test_deploy_template.py' adding 'ironic/tests/unit/api/controllers/v1/test_driver.py' adding 'ironic/tests/unit/api/controllers/v1/test_event.py' adding 'ironic/tests/unit/api/controllers/v1/test_inspection_rule.py' adding 'ironic/tests/unit/api/controllers/v1/test_node.py' adding 'ironic/tests/unit/api/controllers/v1/test_notification_utils.py' adding 'ironic/tests/unit/api/controllers/v1/test_port.py' adding 'ironic/tests/unit/api/controllers/v1/test_portgroup.py' adding 'ironic/tests/unit/api/controllers/v1/test_ramdisk.py' adding 'ironic/tests/unit/api/controllers/v1/test_root.py' adding 'ironic/tests/unit/api/controllers/v1/test_runbook.py' adding 'ironic/tests/unit/api/controllers/v1/test_shard.py' adding 'ironic/tests/unit/api/controllers/v1/test_utils.py' adding 'ironic/tests/unit/api/controllers/v1/test_versions.py' adding 'ironic/tests/unit/api/controllers/v1/test_volume.py' adding 'ironic/tests/unit/api/controllers/v1/test_volume_connector.py' adding 'ironic/tests/unit/api/controllers/v1/test_volume_target.py' adding 'ironic/tests/unit/api/validation/__init__.py' adding 'ironic/tests/unit/api/validation/test_validators.py' adding 'ironic/tests/unit/command/__init__.py' adding 'ironic/tests/unit/command/test_conductor.py' adding 'ironic/tests/unit/command/test_dbsync.py' adding 'ironic/tests/unit/command/test_status.py' adding 'ironic/tests/unit/common/__init__.py' adding 'ironic/tests/unit/common/test_args.py' adding 'ironic/tests/unit/common/test_checksum_utils.py' adding 'ironic/tests/unit/common/test_cinder.py' adding 'ironic/tests/unit/common/test_context.py' adding 'ironic/tests/unit/common/test_driver_factory.py' adding 'ironic/tests/unit/common/test_exception.py' adding 'ironic/tests/unit/common/test_fsm.py' adding 'ironic/tests/unit/common/test_glance_service.py' adding 'ironic/tests/unit/common/test_hash_ring.py' adding 'ironic/tests/unit/common/test_image_publisher.py' adding 'ironic/tests/unit/common/test_image_service.py' adding 'ironic/tests/unit/common/test_images.py' adding 'ironic/tests/unit/common/test_inspection_rule.py' adding 'ironic/tests/unit/common/test_json_rpc.py' adding 'ironic/tests/unit/common/test_keystone.py' adding 'ironic/tests/unit/common/test_kickstart_utils.py' adding 'ironic/tests/unit/common/test_mdns.py' adding 'ironic/tests/unit/common/test_molds.py' adding 'ironic/tests/unit/common/test_network.py' adding 'ironic/tests/unit/common/test_neutron.py' adding 'ironic/tests/unit/common/test_nova.py' adding 'ironic/tests/unit/common/test_oci_registry.py' adding 'ironic/tests/unit/common/test_policy.py' adding 'ironic/tests/unit/common/test_pxe_utils.py' adding 'ironic/tests/unit/common/test_qemu_img.py' adding 'ironic/tests/unit/common/test_raid.py' adding 'ironic/tests/unit/common/test_release_mappings.py' adding 'ironic/tests/unit/common/test_rpc.py' adding 'ironic/tests/unit/common/test_states.py' adding 'ironic/tests/unit/common/test_swift.py' adding 'ironic/tests/unit/common/test_utils.py' adding 'ironic/tests/unit/common/test_vnc.py' adding 'ironic/tests/unit/common/test_wsgi_service.py' adding 'ironic/tests/unit/common/drive_samples/config_drive' adding 'ironic/tests/unit/common/json_samples/neutron_network_show.json' adding 'ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json' adding 'ironic/tests/unit/common/json_samples/neutron_port_show.json' adding 'ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json' adding 'ironic/tests/unit/common/json_samples/neutron_subnet_show.json' adding 'ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json' adding 'ironic/tests/unit/conductor/__init__.py' adding 'ironic/tests/unit/conductor/mgr_utils.py' adding 'ironic/tests/unit/conductor/test_allocations.py' adding 'ironic/tests/unit/conductor/test_base_manager.py' adding 'ironic/tests/unit/conductor/test_cleaning.py' adding 'ironic/tests/unit/conductor/test_deployments.py' adding 'ironic/tests/unit/conductor/test_inspection.py' adding 'ironic/tests/unit/conductor/test_manager.py' adding 'ironic/tests/unit/conductor/test_notification_utils.py' adding 'ironic/tests/unit/conductor/test_periodics.py' adding 'ironic/tests/unit/conductor/test_rpc_service.py' adding 'ironic/tests/unit/conductor/test_rpcapi.py' adding 'ironic/tests/unit/conductor/test_servicing.py' adding 'ironic/tests/unit/conductor/test_steps.py' adding 'ironic/tests/unit/conductor/test_task_manager.py' adding 'ironic/tests/unit/conductor/test_utils.py' adding 'ironic/tests/unit/conductor/test_verify.py' adding 'ironic/tests/unit/conf/__init__.py' adding 'ironic/tests/unit/conf/test_auth.py' adding 'ironic/tests/unit/conf/test_conductor.py' adding 'ironic/tests/unit/conf/test_types.py' adding 'ironic/tests/unit/console/__init__.py' adding 'ironic/tests/unit/console/container/__init__.py' adding 'ironic/tests/unit/console/container/test_console_container.py' adding 'ironic/tests/unit/console/rfb/__init__.py' adding 'ironic/tests/unit/console/rfb/test_auth.py' adding 'ironic/tests/unit/console/rfb/test_authnone.py' adding 'ironic/tests/unit/console/securityproxy/__init__.py' adding 'ironic/tests/unit/console/securityproxy/test_rfb.py' adding 'ironic/tests/unit/console/securityproxy/test_websocketproxy.py' adding 'ironic/tests/unit/db/__init__.py' adding 'ironic/tests/unit/db/base.py' adding 'ironic/tests/unit/db/test_allocations.py' adding 'ironic/tests/unit/db/test_api.py' adding 'ironic/tests/unit/db/test_bios_settings.py' adding 'ironic/tests/unit/db/test_chassis.py' adding 'ironic/tests/unit/db/test_conductor.py' adding 'ironic/tests/unit/db/test_deploy_templates.py' adding 'ironic/tests/unit/db/test_firmware_component.py' adding 'ironic/tests/unit/db/test_node_history.py' adding 'ironic/tests/unit/db/test_node_inventory.py' adding 'ironic/tests/unit/db/test_node_tags.py' adding 'ironic/tests/unit/db/test_node_traits.py' adding 'ironic/tests/unit/db/test_nodes.py' adding 'ironic/tests/unit/db/test_portgroups.py' adding 'ironic/tests/unit/db/test_ports.py' adding 'ironic/tests/unit/db/test_runbooks.py' adding 'ironic/tests/unit/db/test_shard.py' adding 'ironic/tests/unit/db/test_volume_connectors.py' adding 'ironic/tests/unit/db/test_volume_targets.py' adding 'ironic/tests/unit/db/utils.py' adding 'ironic/tests/unit/db/sqlalchemy/__init__.py' adding 'ironic/tests/unit/db/sqlalchemy/test_api.py' adding 'ironic/tests/unit/db/sqlalchemy/test_migrations.py' adding 'ironic/tests/unit/db/sqlalchemy/test_models.py' adding 'ironic/tests/unit/db/sqlalchemy/test_types.py' adding 'ironic/tests/unit/dhcp/__init__.py' adding 'ironic/tests/unit/dhcp/test_dnsmasq.py' adding 'ironic/tests/unit/dhcp/test_factory.py' adding 'ironic/tests/unit/dhcp/test_neutron.py' adding 'ironic/tests/unit/drivers/__init__.py' adding 'ironic/tests/unit/drivers/boot-fallback.ipxe' adding 'ironic/tests/unit/drivers/boot.ipxe' adding 'ironic/tests/unit/drivers/ipxe_config.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template' adding 'ironic/tests/unit/drivers/ipxe_config_timeout.template' adding 'ironic/tests/unit/drivers/ks_extra_vars.tmpl' adding 'ironic/tests/unit/drivers/ks_missing_var.tmpl' adding 'ironic/tests/unit/drivers/pxe_config.template' adding 'ironic/tests/unit/drivers/pxe_grub_config.template' adding 'ironic/tests/unit/drivers/test_base.py' adding 'ironic/tests/unit/drivers/test_drac.py' adding 'ironic/tests/unit/drivers/test_fake_hardware.py' adding 'ironic/tests/unit/drivers/test_generic.py' adding 'ironic/tests/unit/drivers/test_ilo.py' adding 'ironic/tests/unit/drivers/test_ipmi.py' adding 'ironic/tests/unit/drivers/test_irmc.py' adding 'ironic/tests/unit/drivers/test_redfish.py' adding 'ironic/tests/unit/drivers/test_snmp.py' adding 'ironic/tests/unit/drivers/test_utils.py' adding 'ironic/tests/unit/drivers/third_party_driver_mock_specs.py' adding 'ironic/tests/unit/drivers/third_party_driver_mocks.py' adding 'ironic/tests/unit/drivers/modules/__init__.py' adding 'ironic/tests/unit/drivers/modules/test_agent.py' adding 'ironic/tests/unit/drivers/modules/test_agent_base.py' adding 'ironic/tests/unit/drivers/modules/test_agent_client.py' adding 'ironic/tests/unit/drivers/modules/test_agent_power.py' adding 'ironic/tests/unit/drivers/modules/test_boot_mode_utils.py' adding 'ironic/tests/unit/drivers/modules/test_console_utils.py' adding 'ironic/tests/unit/drivers/modules/test_deploy_utils.py' adding 'ironic/tests/unit/drivers/modules/test_graphical_console.py' adding 'ironic/tests/unit/drivers/modules/test_image_cache.py' adding 'ironic/tests/unit/drivers/modules/test_image_utils.py' adding 'ironic/tests/unit/drivers/modules/test_inspect_utils.py' adding 'ironic/tests/unit/drivers/modules/test_ipmitool.py' adding 'ironic/tests/unit/drivers/modules/test_ipxe.py' adding 'ironic/tests/unit/drivers/modules/test_noop.py' adding 'ironic/tests/unit/drivers/modules/test_noop_mgmt.py' adding 'ironic/tests/unit/drivers/modules/test_pxe.py' adding 'ironic/tests/unit/drivers/modules/test_ramdisk.py' adding 'ironic/tests/unit/drivers/modules/test_snmp.py' adding 'ironic/tests/unit/drivers/modules/ansible/__init__.py' adding 'ironic/tests/unit/drivers/modules/ansible/test_deploy.py' adding 'ironic/tests/unit/drivers/modules/drac/__init__.py' adding 'ironic/tests/unit/drivers/modules/drac/test_boot.py' adding 'ironic/tests/unit/drivers/modules/drac/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/drac/test_management.py' adding 'ironic/tests/unit/drivers/modules/drac/test_raid.py' adding 'ironic/tests/unit/drivers/modules/drac/test_utils.py' adding 'ironic/tests/unit/drivers/modules/drac/utils.py' adding 'ironic/tests/unit/drivers/modules/ibmc/__init__.py' adding 'ironic/tests/unit/drivers/modules/ilo/__init__.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_bios.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_boot.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_common.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_console.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_management.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_power.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_raid.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_vendor.py' adding 'ironic/tests/unit/drivers/modules/inspector/__init__.py' adding 'ironic/tests/unit/drivers/modules/inspector/test_agent.py' adding 'ironic/tests/unit/drivers/modules/inspector/test_client.py' adding 'ironic/tests/unit/drivers/modules/inspector/test_interface.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/base.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py' adding 'ironic/tests/unit/drivers/modules/irmc/__init__.py' adding 'ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml' adding 'ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml' adding 'ironic/tests/unit/drivers/modules/irmc/test_bios.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_boot.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_common.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_management.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_power.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_raid.py' adding 'ironic/tests/unit/drivers/modules/network/__init__.py' adding 'ironic/tests/unit/drivers/modules/network/test_common.py' adding 'ironic/tests/unit/drivers/modules/network/test_flat.py' adding 'ironic/tests/unit/drivers/modules/network/test_neutron.py' adding 'ironic/tests/unit/drivers/modules/network/test_noop.py' adding 'ironic/tests/unit/drivers/modules/network/json_samples/network_data.json' adding 'ironic/tests/unit/drivers/modules/redfish/__init__.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_bios.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_boot.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_firmware.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_management.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_power.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_raid.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_utils.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_vendor.py' adding 'ironic/tests/unit/drivers/modules/storage/__init__.py' adding 'ironic/tests/unit/drivers/modules/storage/test_cinder.py' adding 'ironic/tests/unit/drivers/modules/storage/test_external.py' adding 'ironic/tests/unit/drivers/modules/xclarity/__init__.py' adding 'ironic/tests/unit/objects/__init__.py' adding 'ironic/tests/unit/objects/test_allocation.py' adding 'ironic/tests/unit/objects/test_bios.py' adding 'ironic/tests/unit/objects/test_chassis.py' adding 'ironic/tests/unit/objects/test_conductor.py' adding 'ironic/tests/unit/objects/test_deploy_template.py' adding 'ironic/tests/unit/objects/test_deployment.py' adding 'ironic/tests/unit/objects/test_fields.py' adding 'ironic/tests/unit/objects/test_firmware.py' adding 'ironic/tests/unit/objects/test_node.py' adding 'ironic/tests/unit/objects/test_node_history.py' adding 'ironic/tests/unit/objects/test_node_inventory.py' adding 'ironic/tests/unit/objects/test_notification.py' adding 'ironic/tests/unit/objects/test_objects.py' adding 'ironic/tests/unit/objects/test_port.py' adding 'ironic/tests/unit/objects/test_portgroup.py' adding 'ironic/tests/unit/objects/test_trait.py' adding 'ironic/tests/unit/objects/test_volume_connector.py' adding 'ironic/tests/unit/objects/test_volume_target.py' adding 'ironic/tests/unit/objects/utils.py' adding 'ironic/tests/unit/pxe_filter/__init__.py' adding 'ironic/tests/unit/pxe_filter/test_dnsmasq.py' adding 'ironic/tests/unit/pxe_filter/test_service.py' adding 'ironic/wsgi/__init__.py' adding 'ironic-29.1.0.dev109.data/data/etc/ironic/rootwrap.conf' adding 'ironic-29.1.0.dev109.data/data/etc/ironic/rootwrap.d/ironic-utils.filters' adding 'ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/Containerfile' adding 'ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/README.rst' adding 'ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/bin/start-browser-x11vnc.sh' adding 'ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/bin/start-selenium-browser.py' adding 'ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/bin/start-xvfb.sh' adding 'ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/drivers/fake/index.html' adding 'ironic-29.1.0.dev109.data/data/share/ironic/vnc-container/drivers/fake/ironic_mascot_color.png' adding 'ironic-29.1.0.dev109.data/scripts/ironic-api-wsgi' adding 'ironic-29.1.0.dev109.dist-info/AUTHORS' adding 'ironic-29.1.0.dev109.dist-info/LICENSE' adding 'ironic-29.1.0.dev109.dist-info/METADATA' adding 'ironic-29.1.0.dev109.dist-info/WHEEL' adding 'ironic-29.1.0.dev109.dist-info/entry_points.txt' adding 'ironic-29.1.0.dev109.dist-info/pbr.json' adding 'ironic-29.1.0.dev109.dist-info/top_level.txt' adding 'ironic-29.1.0.dev109.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for ironic (pyproject.toml): finished with status 'done' Created wheel for ironic: filename=ironic-29.1.0.dev109-py3-none-any.whl size=2257036 sha256=e0367a0d5378b363c48d0f346df11422fcbddba8f13505f16cf0f4c2c96a8cae Stored in directory: /builddir/.cache/pip/wheels/25/34/a9/3e8316d67dab4c3ff4e6052f87b60fbe4ae1fd35268687cb54 Successfully built ironic + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.1WofLj + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 ++ dirname /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ironic-29.1.0.dev109 ++ xargs basename --multiple ++ ls /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir/ironic-29.1.0.dev109-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=ironic==29.1.0.dev109 + '[' -z ironic==29.1.0.dev109 ']' + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir ironic==29.1.0.dev109 Using pip 23.3.2 from /usr/lib/python3.12/site-packages/pip (python 3.12) Looking in links: /builddir/build/BUILD/ironic-29.1.0.dev109/pyproject-wheeldir Processing ./pyproject-wheeldir/ironic-29.1.0.dev109-py3-none-any.whl Installing collected packages: ironic changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-api to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-conductor to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-dbsync to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-novncproxy to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-pxe-filter to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-rootwrap to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-status to 755 Successfully installed ironic-29.1.0.dev109 + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin ']' + '[' -z sP ']' + shebang_flags=-kasP + /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kasP /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-novncproxy /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-status /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-api: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-api-wsgi: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-conductor: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-dbsync: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-novncproxy: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-pxe-filter: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-rootwrap: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/ironic-status: updating + rm -rfv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages ']' + site_dirs+=("/usr/lib/python3.12/site-packages") + '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib64/python3.12/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.12/site-packages/ironic-29.1.0.dev109.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev109.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev109.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev109.dist-info/RECORD removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev109.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev109.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev109.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + install -p -D -m 644 /builddir/build/SOURCES/ironic.logrotate /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-api.service /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-conductor.service /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-dnsmasq-tftp-server.service /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic.service /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-pxe-filter.service /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-novncproxy.service /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/etc/sudoers.d + install -p -D -m 440 /builddir/build/SOURCES/ironic-sudoers /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/etc/ironic/rootwrap.d + export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64//usr/lib/python3.12/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64//usr/lib/python3.12/site-packages + oslo-config-generator --config-file tools/config/ironic-config-generator.conf --output-file /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64//etc/ironic/ironic.conf + oslopolicy-sample-generator --config-file tools/policy/ironic-policy-generator.conf + mv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/etc/ironic + install -p -D -m 640 /builddir/build/SOURCES/ironic-dist.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64//usr/share/ironic/ironic-dist.conf + install -p -D -m 644 /builddir/build/SOURCES/dnsmasq-tftp-server.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64//etc/ironic/dnsmasq-tftp-server.conf + /usr/bin/find-debuginfo -j4 --strict-build-id -m -i --build-id-seed 29.1.0-0.20250519190656.a5bfbe7.el10 --unique-debug-suffix -29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 --unique-debug-src-base openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/ironic-29.1.0.dev109 find-debuginfo: starting Extracting debug info from 0 files Creating .debug symlinks for symlinks to ELF files find: ‘debug’: No such file or directory find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs mangling shebang in /usr/share/ironic/vnc-container/bin/start-xvfb.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/share/ironic/vnc-container/bin/start-selenium-browser.py from /usr/bin/env python3 to #!/usr/bin/python3 mangling shebang in /usr/share/ironic/vnc-container/bin/start-browser-x11vnc.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/lib/python3.12/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh from /bin/sh to #!/usr/bin/sh + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j4 Bytecompiling .py files below /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12 using python3.12 Not clamping source mtimes, $SOURCE_DATE_EPOCH not set + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.zr33T6 + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ironic-29.1.0.dev109 + TOX_TESTENV_PASSENV='*' + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-29.1.0.dev109/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=4 + HOSTNAME=rpmbuild + /usr/bin/python3 -m tox --current-env -q --recreate -e py312 /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) 1 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) 1 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 1 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 1 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 2025-05-19 15:09:08.458 239840 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-19 15:09:08.471 239840 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-19 15:09:08.473 239838 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-19 15:09:08.482 239838 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 1 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 2025-05-19 15:09:08.664 239835 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-19 15:09:08.706 239835 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-19 15:09:08.802 239847 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-19 15:09:08.817 239847 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.196087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1c14278d6e33 /usr/lib/python3.12/site-packages/bs4/css.py:8: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used. warnings.warn( {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.030515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/bad/path WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.041087s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.042246s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.041950s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.027426s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.031395s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.031549s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.022626s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.021806s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_new_standard_singular_header_ok [0.033081s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.029690s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.021443s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.020508s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.116770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/6a83612f-ec9b-49fb-a9b5-6bcfa3de3c44 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6f23bcb-7eae-471f-a9f5-f79bd87fb7bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6a83612f-ec9b-49fb-a9b5-6bcfa3de3c44", "created_at": "2025-05-19T19:09:17.091499+00:00", "updated_at": "2025-05-19T19:09:17.133485+00:00", "candidate_nodes": [], "extra": {"foo": "bar"}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/6a83612f-ec9b-49fb-a9b5-6bcfa3de3c44", "rel": "self"}, {"href": "http://localhost/allocations/6a83612f-ec9b-49fb-a9b5-6bcfa3de3c44", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.458017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/d890db08-b134-4698-bf2e-54071bf086e8 GOT Response: 204 No Content Openstack-Request-Id: req-f3c604e2-93a6-4d45-b588-db7b5aed9faf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 Captured stderr: ~~~~~~~~~~~~~~~~ INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1c14278d6e33 /usr/lib/python3.12/site-packages/bs4/css.py:8: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used. warnings.warn( {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.046112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1 GOT Response: 204 No Content Openstack-Request-Id: req-4bca045b-e740-4891-8d6b-5662fd20ef06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.100616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/0e19cd75-0d31-48e4-a6e7-c3c493a2ca34 WITH [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3496a89-8c48-41ea-84d7-b1b9f63b0845 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0e19cd75-0d31-48e4-a6e7-c3c493a2ca34", "created_at": "2025-05-19T19:09:17.186964+00:00", "updated_at": "2025-05-19T19:09:17.224371+00:00", "candidate_nodes": [], "extra": {"foo1": "bar1", "foo2": "bar2"}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0e19cd75-0d31-48e4-a6e7-c3c493a2ca34", "rel": "self"}, {"href": "http://localhost/allocations/0e19cd75-0d31-48e4-a6e7-c3c493a2ca34", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/0e19cd75-0d31-48e4-a6e7-c3c493a2ca34 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6df86eff-3dd1-4771-ab0b-ed17ca238614 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0e19cd75-0d31-48e4-a6e7-c3c493a2ca34", "created_at": "2025-05-19T19:09:17.186964+00:00", "updated_at": "2025-05-19T19:09:17.224371+00:00", "candidate_nodes": [], "extra": {"foo1": "bar1", "foo2": "bar2"}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0e19cd75-0d31-48e4-a6e7-c3c493a2ca34", "rel": "self"}, {"href": "http://localhost/allocations/0e19cd75-0d31-48e4-a6e7-c3c493a2ca34", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.042689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-37439c08-b027-4b69-9788-eabb86358596 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.054685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9685b8ca-80cf-4ea5-9c23-8a09f7252efc WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5b8756b3-55df-48d4-9649-46c5aac151c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.042388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content Openstack-Request-Id: req-2a4aceb5-71dd-4eb4-b7d3-a948feaedb36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json_not_found [0.040957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6a65ae3c-7ead-4944-8db8-e55d3af4a115 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation alloc1.json could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.041795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content Openstack-Request-Id: req-c5e4af11-8318-42ec-b318-822573fab390 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.396583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72542690-09c2-4c9e-b25a-2a62c54595a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:17.341119+00:00", "updated_at": "2025-05-19T19:09:17.380435+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f548ef4d-85a7-4c81-9835-1a0306113718 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:17.341119+00:00", "updated_at": "2025-05-19T19:09:17.380435+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} Captured stderr: ~~~~~~~~~~~~~~~~ INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1c14278d6e33 /usr/lib/python3.12/site-packages/bs4/css.py:8: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used. warnings.warn( {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.041446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.514370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-f26ee5ae-559d-4f6c-a455-72939d28ba43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-adac7b2c-f23c-4540-9895-4cbf7f997e76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1c14278d6e33 /usr/lib/python3.12/site-packages/bs4/css.py:8: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used. warnings.warn( {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.172403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e99e4b5-c747-4de7-a7d5-f75cde5cada8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c8468134-2578-40f4-9e4c-242675c5d882", "created_at": "2025-05-19T19:09:17.343470+00:00", "updated_at": "2025-05-19T19:09:17.416628+00:00", "candidate_nodes": [], "extra": {"foo1": "bar1", "foo3": "bar3"}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "self"}, {"href": "http://localhost/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eafb1e91-2d5f-4d35-88a5-7633a4ee5f84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c8468134-2578-40f4-9e4c-242675c5d882", "created_at": "2025-05-19T19:09:17.343470+00:00", "updated_at": "2025-05-19T19:09:17.416628+00:00", "candidate_nodes": [], "extra": {"foo1": "bar1", "foo3": "bar3"}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "self"}, {"href": "http://localhost/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "bookmark"}], "node_uuid": null} PATCH /v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-641382db-0f80-4564-9afe-51055c6c5ad9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c8468134-2578-40f4-9e4c-242675c5d882", "created_at": "2025-05-19T19:09:17.343470+00:00", "updated_at": "2025-05-19T19:09:17.459007+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "self"}, {"href": "http://localhost/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-293bd1c1-e5d4-4d94-a512-528bf1ec0adf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c8468134-2578-40f4-9e4c-242675c5d882", "created_at": "2025-05-19T19:09:17.343470+00:00", "updated_at": "2025-05-19T19:09:17.459007+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "self"}, {"href": "http://localhost/allocations/c8468134-2578-40f4-9e4c-242675c5d882", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.045759s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/281babc7-dcc9-4771-b66c-d03e0270803f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e879ef5c-ecab-4fa9-85a8-9bdee8eed693 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 281babc7-dcc9-4771-b66c-d03e0270803f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.089333s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'path': '/description', 'value': 'test', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9431135-fe6a-4365-9c50-7bbe165ad962 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:17.458696+00:00", "updated_at": "2025-05-19T19:09:17.489215+00:00", "description": "test", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.041056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1fc28eb4-9b51-4dff-88b0-8c7d2945dc94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.081792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/25a4fa5f-6b3a-48fb-9cb2-5c451b0812e9 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c7c3d182-6a26-49e5-9c3d-34775eb35751 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.125776s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/b1fd7909-62c8-41a8-8c2f-14e99a94d164/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-082c35b1-dc5e-4c2a-80a8-e76c1af0e1d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node b1fd7909-62c8-41a8-8c2f-14e99a94d164 was not found\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.063567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-937de45b-cb81-4ed7-9d5f-dc95bffd6b59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: uuid, extra, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.043102s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-86ec7fef-7cf5-48fe-9b40-22a390850f96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.038125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-13f2947a-922b-4388-b49a-1115ce9787c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.040909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d08a5dc-f86a-4e1a-9855-d8bbdc22351c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "4a4223b3-5995-4763-ac66-58f9b3ec4514", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/4a4223b3-5995-4763-ac66-58f9b3ec4514", "rel": "self"}, {"href": "http://localhost/chassis/4a4223b3-5995-4763-ac66-58f9b3ec4514", "rel": "bookmark"}]}, {"uuid": "bf17d7cf-eaa6-41c1-823a-1206a2657acf", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/bf17d7cf-eaa6-41c1-823a-1206a2657acf", "rel": "self"}, {"href": "http://localhost/chassis/bf17d7cf-eaa6-41c1-823a-1206a2657acf", "rel": "bookmark"}]}, {"uuid": "3759e771-b99a-45de-9080-a2eaaaba5036", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/3759e771-b99a-45de-9080-a2eaaaba5036", "rel": "self"}, {"href": "http://localhost/chassis/3759e771-b99a-45de-9080-a2eaaaba5036", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=3759e771-b99a-45de-9080-a2eaaaba5036"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.103927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/1b59b4ab-3527-4fca-9240-09b6cc28f8a8 WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92f48c5f-03de-4d1b-a24d-ebf5865529dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1b59b4ab-3527-4fca-9240-09b6cc28f8a8", "created_at": "2025-05-19T19:09:17.614676+00:00", "updated_at": "2025-05-19T19:09:17.642953+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1b59b4ab-3527-4fca-9240-09b6cc28f8a8", "rel": "self"}, {"href": "http://localhost/allocations/1b59b4ab-3527-4fca-9240-09b6cc28f8a8", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/1b59b4ab-3527-4fca-9240-09b6cc28f8a8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d093b67d-8cc5-49a2-87ac-598f10443d49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1b59b4ab-3527-4fca-9240-09b6cc28f8a8", "created_at": "2025-05-19T19:09:17.614676+00:00", "updated_at": "2025-05-19T19:09:17.642953+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1b59b4ab-3527-4fca-9240-09b6cc28f8a8", "rel": "self"}, {"href": "http://localhost/allocations/1b59b4ab-3527-4fca-9240-09b6cc28f8a8", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.060994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3b89e71-65e0-4af0-b8e2-53955ff6acbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "71c29688-74a6-4e07-a2a4-ba2daa070436", "created_at": "2025-05-19T19:09:17.633490+00:00", "updated_at": "2025-05-19T19:09:17.644623+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "bookmark"}]]} GET /v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2ef5a98-e91a-491d-a1b0-d2ddfde74b5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "71c29688-74a6-4e07-a2a4-ba2daa070436", "created_at": "2025-05-19T19:09:17.633490+00:00", "updated_at": "2025-05-19T19:09:17.644623+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "bookmark"}]]} PATCH /v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a279179-d9d4-4ff8-9483-d1d95d454fb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "71c29688-74a6-4e07-a2a4-ba2daa070436", "created_at": "2025-05-19T19:09:17.633490+00:00", "updated_at": "2025-05-19T19:09:17.659022+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "bookmark"}]]} GET /v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-300fddaf-4b2e-48ce-b6e9-aad78c5281e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "71c29688-74a6-4e07-a2a4-ba2daa070436", "created_at": "2025-05-19T19:09:17.633490+00:00", "updated_at": "2025-05-19T19:09:17.659022+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "self"}, {"href": "http://localhost/chassis/71c29688-74a6-4e07-a2a4-ba2daa070436/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.130782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/c0e48a50-130b-4a22-88cc-6dbaf5bcb9fd GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.081191s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e3668a2-dc71-42cf-bad4-e5b80a7dfa54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "bcb57728-15f5-4c77-a407-8019ab577b8e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/bcb57728-15f5-4c77-a407-8019ab577b8e", "rel": "self"}, {"href": "http://localhost/chassis/bcb57728-15f5-4c77-a407-8019ab577b8e", "rel": "bookmark"}]}, {"uuid": "46aeecfe-8344-45e5-80f6-452a8ff7d355", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/46aeecfe-8344-45e5-80f6-452a8ff7d355", "rel": "self"}, {"href": "http://localhost/chassis/46aeecfe-8344-45e5-80f6-452a8ff7d355", "rel": "bookmark"}]}, {"uuid": "444d7c74-81c8-401e-97e2-6bbadf4cb0a7", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/444d7c74-81c8-401e-97e2-6bbadf4cb0a7", "rel": "self"}, {"href": "http://localhost/chassis/444d7c74-81c8-401e-97e2-6bbadf4cb0a7", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=444d7c74-81c8-401e-97e2-6bbadf4cb0a7"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.047329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ad28965-f92c-4b45-8872-c24d5e42d918 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.074796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/f19183a7-5b02-4e1e-83e0-a289c863f6c8 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a76dc82-5340-474c-9c65-2dde400b7791 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.067567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/ba!na!na1 GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.057287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86297347-084e-4ee4-b577-43f9aa1c4277 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "8f657c23-4a37-45a4-a3c2-abb670d4e42b", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/8f657c23-4a37-45a4-a3c2-abb670d4e42b", "rel": "self"}, {"href": "http://localhost/chassis/8f657c23-4a37-45a4-a3c2-abb670d4e42b", "rel": "bookmark"}]}, {"uuid": "b5dcc7de-e9b0-4ba4-8dac-d3baa92698d0", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b5dcc7de-e9b0-4ba4-8dac-d3baa92698d0", "rel": "self"}, {"href": "http://localhost/chassis/b5dcc7de-e9b0-4ba4-8dac-d3baa92698d0", "rel": "bookmark"}]}, {"uuid": "c129aee8-5141-4eb7-80e6-0a8d8ae3f375", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/c129aee8-5141-4eb7-80e6-0a8d8ae3f375", "rel": "self"}, {"href": "http://localhost/chassis/c129aee8-5141-4eb7-80e6-0a8d8ae3f375", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=c129aee8-5141-4eb7-80e6-0a8d8ae3f375"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.076545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29974ac8-e89f-4088-acbb-c6e8cddb7684 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1176f601-4c52-4d02-92fe-8fde161e6d7c", "created_at": "2025-05-19T19:09:17.764610+00:00", "updated_at": "2025-05-19T19:09:17.785676+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c", "rel": "self"}, {"href": "http://localhost/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c/nodes", "rel": "self"}, {"href": "http://localhost/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c/nodes", "rel": "bookmark"}]]} GET /v1/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2611c269-a447-48c2-a630-2a37094d350c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1176f601-4c52-4d02-92fe-8fde161e6d7c", "created_at": "2025-05-19T19:09:17.764610+00:00", "updated_at": "2025-05-19T19:09:17.785676+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c", "rel": "self"}, {"href": "http://localhost/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c/nodes", "rel": "self"}, {"href": "http://localhost/chassis/1176f601-4c52-4d02-92fe-8fde161e6d7c/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.043578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/92903403-d9da-419a-b074-37bf77e679d7/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0fb98672-a203-4388-bb88-8b9bc968edda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 92903403-d9da-419a-b074-37bf77e679d7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.044973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bac32e22-1bbc-49fd-bb2f-1228f457dda4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:17.799552+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.083220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/3851dd3f-9ae1-40e2-8c78-89406dbd7310 WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-42e36b59-ce70-4a76-96e6-36bc5d01f1af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.038011s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-659232c7-7197-4cb8-9a2d-a56d4bf2ac96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.051259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/91c03b8a-c063-4b15-b666-e94bc2763de9 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-9f2d31a4-9d6d-47f0-b853-91ecdb04d67e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.070161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a860fc6e-9772-4459-bea0-ee10c8ea3389 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot overwrite UUID for an existing Chassis.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.035804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9b56e4a-01f7-44e5-94d8-0b152de47bef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.057320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-edf315c0-85d6-45ec-ab45-fb08e56f8efe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:17.891915+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.106676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/b5190531-9314-4e92-b524-42cb08846fd9 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60c090dc-37e3-4710-bcfb-a300d37c7e57 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b5190531-9314-4e92-b524-42cb08846fd9", "created_at": "2025-05-19T19:09:17.881330+00:00", "updated_at": "2025-05-19T19:09:17.909191+00:00", "candidate_nodes": [], "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b5190531-9314-4e92-b524-42cb08846fd9", "rel": "self"}, {"href": "http://localhost/allocations/b5190531-9314-4e92-b524-42cb08846fd9", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/b5190531-9314-4e92-b524-42cb08846fd9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-749551e0-5935-48b9-83b7-e42a0e1219f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b5190531-9314-4e92-b524-42cb08846fd9", "created_at": "2025-05-19T19:09:17.881330+00:00", "updated_at": "2025-05-19T19:09:17.909191+00:00", "candidate_nodes": [], "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b5190531-9314-4e92-b524-42cb08846fd9", "rel": "self"}, {"href": "http://localhost/allocations/b5190531-9314-4e92-b524-42cb08846fd9", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.042027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ad119704-1908-4c6a-8520-6a111d8e2de8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.075293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ea82f2c-8712-4227-b2e2-92320361002f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "eddde847-f1d2-4940-9e16-42d8cb8895f5", "created_at": "2025-05-19T19:09:17.900670+00:00", "updated_at": "2025-05-19T19:09:17.932681+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5", "rel": "self"}, {"href": "http://localhost/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5/nodes", "rel": "bookmark"}]]} GET /v1/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d979f0f6-7e1b-43b0-8b0e-1ae42c669b3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "eddde847-f1d2-4940-9e16-42d8cb8895f5", "created_at": "2025-05-19T19:09:17.900670+00:00", "updated_at": "2025-05-19T19:09:17.932681+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5", "rel": "self"}, {"href": "http://localhost/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/eddde847-f1d2-4940-9e16-42d8cb8895f5/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.054545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f0b1ab6-5bfd-41c7-b68c-8e7c6ff3600f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} GET /v1/chassis?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3398f815-9477-419e-acd1-3b887bc85513 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.039495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'path': '/description', 'value': 'chassis-new-description', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72e1ca3d-7f05-448a-98be-efe63e8ab601 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:17.966009+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "description": "chassis-new-description", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28294cf3-857e-42b1-8804-afcbadeba1d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:17.966009+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "description": "chassis-new-description", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.059647s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4f6c5a7-ec2b-41b0-8d7a-326cc0b8f285 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.038017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-66ed39b3-d523-45d8-af6d-1d14ee276d3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.042999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'path': '/description', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-039efae0-ed62-4094-80bd-50be3df9e8b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.039633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0419ac19-72f3-46c3-b4ab-ffc9ff80a3b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.128963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/c7ada696-afd7-424a-bc46-4a20380e163e WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d21e69d3-f7ea-4a3d-a88d-717f24148c46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c7ada696-afd7-424a-bc46-4a20380e163e", "created_at": "2025-05-19T19:09:17.980806+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c7ada696-afd7-424a-bc46-4a20380e163e", "rel": "self"}, {"href": "http://localhost/allocations/c7ada696-afd7-424a-bc46-4a20380e163e", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/c7ada696-afd7-424a-bc46-4a20380e163e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4aa306d5-dae6-4541-869c-988d96de73ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c7ada696-afd7-424a-bc46-4a20380e163e", "created_at": "2025-05-19T19:09:17.980806+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c7ada696-afd7-424a-bc46-4a20380e163e", "rel": "self"}, {"href": "http://localhost/allocations/c7ada696-afd7-424a-bc46-4a20380e163e", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.075935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.051864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/f9bc445b-ceee-493f-9425-42f59819e4de WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-646e61f8-1ba9-4992-adcc-10c20d99b40b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis f9bc445b-ceee-493f-9425-42f59819e4de could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.044631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-63e2d775-e9af-4dc5-aec0-ef10558e24ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.034306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-f3fdec70-501d-4e13-ba1f-05094675756a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3c5f5a8-7552-4d3a-a517-c0c629895a66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty [0.038519s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35c83bc2-caf2-4321-af0e-5283145d12dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.037008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-986ffcba-8d1f-4c68-8c6f-ea611dd98231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.142019+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0497db11-03f1-4d4c-a80a-bc92bffcda25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.142019+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.042641s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7be25f0-ca99-47e5-b4b8-4f7a8fd48761 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "085bd06b-843d-4d81-bbb1-a6a97ee7dbce", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/085bd06b-843d-4d81-bbb1-a6a97ee7dbce", "rel": "self"}, {"href": "http://localhost/chassis/085bd06b-843d-4d81-bbb1-a6a97ee7dbce", "rel": "bookmark"}]}, {"uuid": "8bc76b65-c499-421b-b7a8-844fa697a6bd", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/8bc76b65-c499-421b-b7a8-844fa697a6bd", "rel": "self"}, {"href": "http://localhost/chassis/8bc76b65-c499-421b-b7a8-844fa697a6bd", "rel": "bookmark"}]}, {"uuid": "b80911d9-6f02-40ad-99fd-fb713aa264d6", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b80911d9-6f02-40ad-99fd-fb713aa264d6", "rel": "self"}, {"href": "http://localhost/chassis/b80911d9-6f02-40ad-99fd-fb713aa264d6", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.098943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f69c490-61fd-4f33-8ef9-d98279caf161 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"allocations": [{"uuid": "79602682-cfaf-47a8-91f3-dfdb9b6ed891", "created_at": "2025-05-19T19:09:18.128743+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/79602682-cfaf-47a8-91f3-dfdb9b6ed891", "rel": "self"}, {"href": "http://localhost/allocations/79602682-cfaf-47a8-91f3-dfdb9b6ed891", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1c7ced3f-a996-4f50-99fe-bb0cf7db5195", "created_at": "2025-05-19T19:09:18.129573+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1c7ced3f-a996-4f50-99fe-bb0cf7db5195", "rel": "self"}, {"href": "http://localhost/allocations/1c7ced3f-a996-4f50-99fe-bb0cf7db5195", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "dd9ce369-1e9f-4bf8-983b-5fefb6d28d60", "created_at": "2025-05-19T19:09:18.132682+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/dd9ce369-1e9f-4bf8-983b-5fefb6d28d60", "rel": "self"}, {"href": "http://localhost/allocations/dd9ce369-1e9f-4bf8-983b-5fefb6d28d60", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "93559dee-d517-4b53-b407-8f11b2e3e031", "created_at": "2025-05-19T19:09:18.133488+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/93559dee-d517-4b53-b407-8f11b2e3e031", "rel": "self"}, {"href": "http://localhost/allocations/93559dee-d517-4b53-b407-8f11b2e3e031", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "0ce172b9-ab19-41a5-9e78-2e0eb789e4f7", "created_at": "2025-05-19T19:09:18.134342+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0ce172b9-ab19-41a5-9e78-2e0eb789e4f7", "rel": "self"}, {"href": "http://localhost/allocations/0ce172b9-ab19-41a5-9e78-2e0eb789e4f7", "rel": "bookmark"}], "node_uuid": null}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.045524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-15631045-8356-4c06-b3a0-74a6d7d7ae76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.160022s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/cf90b2f5-b596-4d3c-a63e-c0ae065692f5 WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-26437814-20cc-426f-bf06-d416dc040f70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "cf90b2f5-b596-4d3c-a63e-c0ae065692f5", "created_at": "2025-05-19T19:09:18.140367+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": "test", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/cf90b2f5-b596-4d3c-a63e-c0ae065692f5", "rel": "self"}, {"href": "http://localhost/allocations/cf90b2f5-b596-4d3c-a63e-c0ae065692f5", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/cf90b2f5-b596-4d3c-a63e-c0ae065692f5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a72b342-aabe-4f9f-a258-c41d81d717f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "cf90b2f5-b596-4d3c-a63e-c0ae065692f5", "created_at": "2025-05-19T19:09:18.140367+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": "test", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/cf90b2f5-b596-4d3c-a63e-c0ae065692f5", "rel": "self"}, {"href": "http://localhost/allocations/cf90b2f5-b596-4d3c-a63e-c0ae065692f5", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.063487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad59b483-89b6-449b-843a-2bcacb08b872 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"extra": {}, "links": [{"href": "http://localhost/v1/chassis/0f717ed7-a745-428a-9e86-9236e86e4c0d", "rel": "self"}, {"href": "http://localhost/chassis/0f717ed7-a745-428a-9e86-9236e86e4c0d", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/0e1c94f1-716f-40b1-9445-20419159efd3", "rel": "self"}, {"href": "http://localhost/chassis/0e1c94f1-716f-40b1-9445-20419159efd3", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=0e1c94f1-716f-40b1-9445-20419159efd3"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.067715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/886e7a10-c6ae-41b9-8da8-9de8e98b9ea7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d7a06de-54b8-428a-af61-882e8a06deb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "886e7a10-c6ae-41b9-8da8-9de8e98b9ea7", "created_at": "2025-05-19T19:09:18.219215+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/886e7a10-c6ae-41b9-8da8-9de8e98b9ea7", "rel": "self"}, {"href": "http://localhost/allocations/886e7a10-c6ae-41b9-8da8-9de8e98b9ea7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/886e7a10-c6ae-41b9-8da8-9de8e98b9ea7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5046cb0-359e-496e-ac83-009851adbb81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "886e7a10-c6ae-41b9-8da8-9de8e98b9ea7", "created_at": "2025-05-19T19:09:18.219215+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/886e7a10-c6ae-41b9-8da8-9de8e98b9ea7", "rel": "self"}, {"href": "http://localhost/allocations/886e7a10-c6ae-41b9-8da8-9de8e98b9ea7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.043653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'extra': {}, 'description': 'data-center-1-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e84351e5-f95a-40e0-b173-5495a6bba677 Openstack-Request-Id: req-f9c13f36-481d-4077-8095-0e31099063b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e84351e5-f95a-40e0-b173-5495a6bba677", "created_at": "2025-05-19T19:09:18.225200+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e84351e5-f95a-40e0-b173-5495a6bba677", "rel": "self"}, {"href": "http://localhost/chassis/e84351e5-f95a-40e0-b173-5495a6bba677", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e84351e5-f95a-40e0-b173-5495a6bba677/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e84351e5-f95a-40e0-b173-5495a6bba677/nodes", "rel": "bookmark"}]]} GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4b6779f-bcd5-462b-9f26-92d2c65f11e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "e84351e5-f95a-40e0-b173-5495a6bba677", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e84351e5-f95a-40e0-b173-5495a6bba677", "rel": "self"}, {"href": "http://localhost/chassis/e84351e5-f95a-40e0-b173-5495a6bba677", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.039877s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8b90c423-b9f4-4cb5-a270-1dbcec9f16ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.035764s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 1334} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-459a5e08-2f98-4e0b-b04c-acfc16431a68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 1334 is not of type 'string', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field [0.039864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8ee24785-961f-4631-baf7-95ae92b5d0a7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0df7aa47-a813-4f49-85aa-380227267105 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8ee24785-961f-4631-baf7-95ae92b5d0a7", "created_at": "2025-05-19T19:09:18.262693+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/8ee24785-961f-4631-baf7-95ae92b5d0a7", "rel": "self"}, {"href": "http://localhost/allocations/8ee24785-961f-4631-baf7-95ae92b5d0a7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.038270s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8caea0f1-316c-4f74-a3b3-e681da1c6496 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.102247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/664a22d2-d58b-4830-9214-cb74044dcf45 WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-23170fd4-4dd0-4711-ab56-ae0999bf3e05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.044679s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/75104eb1-ced9-4e5c-8b1e-db64c539a262 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d43eebbf-25f3-4c98-a93e-52182deb9201 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "75104eb1-ced9-4e5c-8b1e-db64c539a262", "created_at": "2025-05-19T19:09:18.312570+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/75104eb1-ced9-4e5c-8b1e-db64c539a262", "rel": "self"}, {"href": "http://localhost/allocations/75104eb1-ced9-4e5c-8b1e-db64c539a262", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.048896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-629b50c0-e749-417a-83fb-0128fe9e73a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.027987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/f04fed13-4010-4d8c-b05d-ef4953da4616/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.027677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/3f7f0598-bd89-4680-80c6-dcfeda598fae/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.052953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'амо'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-f9868631-eacc-4428-b23d-4b60ae467b5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.374697+00:00", "updated_at": null, "description": "\u0430\u043c\u043e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86d70fb4-b1c4-437a-aaae-7bba3ce59121 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.374697+00:00", "updated_at": null, "description": "\u0430\u043c\u043e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.071642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/aa3faed1-1695-4d25-b5a5-8cbcee98df02 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-8aa038ce-56e4-42f8-84f1-ff6073653d51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow updating allocations\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.079053s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-026ab3b3-a43e-4369-a357-de475f492d76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.383000+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.043337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-32e81217-f82f-454f-8487-8a347dc0fd68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "393a65e9-a705-48aa-8968-c71284a9ca2a", "created_at": "2025-05-19T19:09:18.412386+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation0", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/393a65e9-a705-48aa-8968-c71284a9ca2a", "rel": "self"}, {"href": "http://localhost/allocations/393a65e9-a705-48aa-8968-c71284a9ca2a", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "4ee63a0f-6678-46f7-aaf1-82dfe95c322a", "created_at": "2025-05-19T19:09:18.413144+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/4ee63a0f-6678-46f7-aaf1-82dfe95c322a", "rel": "self"}, {"href": "http://localhost/allocations/4ee63a0f-6678-46f7-aaf1-82dfe95c322a", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "38527755-5d8f-4deb-a621-79ec7a13eff4", "created_at": "2025-05-19T19:09:18.414150+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/38527755-5d8f-4deb-a621-79ec7a13eff4", "rel": "self"}, {"href": "http://localhost/allocations/38527755-5d8f-4deb-a621-79ec7a13eff4", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=38527755-5d8f-4deb-a621-79ec7a13eff4"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.035205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=extra,description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8945f61a-bfac-418b-8bba-973c312dcb67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.078653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'description': 'data-center-1-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-0119c648-c00c-4547-acb2-564b2ae7aa2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.446864+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe72179e-9bc8-43ec-b125-0adcf75ad8c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.446864+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.075181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/112b06ba-421c-45f8-87f9-6b2a9fdee75f WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e345e0bd-6b1b-4626-8f7c-b48b99342a98 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 112b06ba-421c-45f8-87f9-6b2a9fdee75f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.047378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef6ec6df-5300-4bb5-971b-b0c0501163b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "bc3482f9-603d-43d2-959e-9a6cb73ad67e", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/bc3482f9-603d-43d2-959e-9a6cb73ad67e", "rel": "self"}, {"href": "http://localhost/allocations/bc3482f9-603d-43d2-959e-9a6cb73ad67e", "rel": "bookmark"}]}, {"uuid": "0bdd8dc3-68fa-4765-9c8d-92509efb2cae", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/0bdd8dc3-68fa-4765-9c8d-92509efb2cae", "rel": "self"}, {"href": "http://localhost/allocations/0bdd8dc3-68fa-4765-9c8d-92509efb2cae", "rel": "bookmark"}]}, {"uuid": "dd84c13a-aea4-42a9-ad16-ab8a87588f8a", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/dd84c13a-aea4-42a9-ad16-ab8a87588f8a", "rel": "self"}, {"href": "http://localhost/allocations/dd84c13a-aea4-42a9-ad16-ab8a87588f8a", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=dd84c13a-aea4-42a9-ad16-ab8a87588f8a"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.068350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebd6cac1-2b68-4ea9-b7c0-71d56f3875b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "efa042fc-6190-4143-9771-7fcdd357f5e5", "created_at": "2025-05-19T19:09:18.454147+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5", "rel": "self"}, {"href": "http://localhost/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5/nodes", "rel": "bookmark"}]]} GET /v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e61d4b68-3a40-4c85-a840-13a9bb1c4bea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "efa042fc-6190-4143-9771-7fcdd357f5e5", "created_at": "2025-05-19T19:09:18.454147+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5", "rel": "self"}, {"href": "http://localhost/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5/nodes", "rel": "bookmark"}]]} GET /chassis/efa042fc-6190-4143-9771-7fcdd357f5e5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ad175a9-1616-449a-b407-df7890cb97e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "efa042fc-6190-4143-9771-7fcdd357f5e5", "created_at": "2025-05-19T19:09:18.454147+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5", "rel": "self"}, {"href": "http://localhost/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/efa042fc-6190-4143-9771-7fcdd357f5e5/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.041266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2b0e51d-0b71-43e0-93b2-93abe21505a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "aaf4a874-504d-4e86-82ae-ebe69aff36fd", "created_at": "2025-05-19T19:09:18.502579+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation0", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/aaf4a874-504d-4e86-82ae-ebe69aff36fd", "rel": "self"}, {"href": "http://localhost/allocations/aaf4a874-504d-4e86-82ae-ebe69aff36fd", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "e97b97f3-be91-4657-b735-429886000c2f", "created_at": "2025-05-19T19:09:18.503534+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e97b97f3-be91-4657-b735-429886000c2f", "rel": "self"}, {"href": "http://localhost/allocations/e97b97f3-be91-4657-b735-429886000c2f", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "848f1f79-db65-40b6-9c50-fb51faf35cca", "created_at": "2025-05-19T19:09:18.504297+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/848f1f79-db65-40b6-9c50-fb51faf35cca", "rel": "self"}, {"href": "http://localhost/allocations/848f1f79-db65-40b6-9c50-fb51faf35cca", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=848f1f79-db65-40b6-9c50-fb51faf35cca"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable [0.064737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/80459520-2b5e-4778-91a4-9f94e7199c9c WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-92cc51b7-4d52-4a50-9607-f3b93317822f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.031536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-735a3661-8dba-4f36-a9bc-91192b4ef3d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": []} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.097139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0485d213-47b8-4fca-a161-162ded5f7001 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.071016s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ecf90c0-ae6d-4260-b9b8-e5c1baecbebd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "19b2142e-f756-43ba-8273-2c2523cf936b", "created_at": "2025-05-19T19:09:18.538126+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b", "rel": "self"}, {"href": "http://foo/chassis/19b2142e-f756-43ba-8273-2c2523cf936b", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b/nodes", "rel": "self"}, {"href": "http://foo/chassis/19b2142e-f756-43ba-8273-2c2523cf936b/nodes", "rel": "bookmark"}]]} GET /v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27140f21-0f4c-4f9e-87b8-48ab3ccf2aeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "19b2142e-f756-43ba-8273-2c2523cf936b", "created_at": "2025-05-19T19:09:18.538126+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b", "rel": "self"}, {"href": "http://foo/chassis/19b2142e-f756-43ba-8273-2c2523cf936b", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b/nodes", "rel": "self"}, {"href": "http://foo/chassis/19b2142e-f756-43ba-8273-2c2523cf936b/nodes", "rel": "bookmark"}]]} GET /chassis/19b2142e-f756-43ba-8273-2c2523cf936b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27a310af-feea-483d-b76a-e52f723baa09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "19b2142e-f756-43ba-8273-2c2523cf936b", "created_at": "2025-05-19T19:09:18.538126+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b", "rel": "self"}, {"href": "http://foo/chassis/19b2142e-f756-43ba-8273-2c2523cf936b", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/19b2142e-f756-43ba-8273-2c2523cf936b/nodes", "rel": "self"}, {"href": "http://foo/chassis/19b2142e-f756-43ba-8273-2c2523cf936b/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next [0.032020s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.035441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cd6c9b0-0e90-43b0-b49b-d447baaa1b5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "0b906843-006c-4c63-9926-daea5f21a0aa", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/0b906843-006c-4c63-9926-daea5f21a0aa", "rel": "self"}, {"href": "http://localhost/chassis/0b906843-006c-4c63-9926-daea5f21a0aa", "rel": "bookmark"}]}, {"uuid": "2a437ade-a0e7-440c-a4d4-7ad407d7a1a5", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/2a437ade-a0e7-440c-a4d4-7ad407d7a1a5", "rel": "self"}, {"href": "http://localhost/chassis/2a437ade-a0e7-440c-a4d4-7ad407d7a1a5", "rel": "bookmark"}]}, {"uuid": "e9526eb4-159c-4d8d-9f4d-680cccd3ed25", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e9526eb4-159c-4d8d-9f4d-680cccd3ed25", "rel": "self"}, {"href": "http://localhost/chassis/e9526eb4-159c-4d8d-9f4d-680cccd3ed25", "rel": "bookmark"}]}, {"uuid": "0b311018-c6ad-4155-8b5b-4bfe9484ab81", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/0b311018-c6ad-4155-8b5b-4bfe9484ab81", "rel": "self"}, {"href": "http://localhost/chassis/0b311018-c6ad-4155-8b5b-4bfe9484ab81", "rel": "bookmark"}]}, {"uuid": "37142b9d-a1c3-441c-ab64-c63b6cc02195", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/37142b9d-a1c3-441c-ab64-c63b6cc02195", "rel": "self"}, {"href": "http://localhost/chassis/37142b9d-a1c3-441c-ab64-c63b6cc02195", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.080189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67f280ef-1d77-4639-a98f-7f7f8146a315 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7306a58e-7b5c-4b9e-bb1d-2d06c019fc52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9790aa05-60c6-451f-840a-2d3ee0865270 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {3} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next [0.027516s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.075465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85737457-6524-4993-a34a-60a309d415ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "661bb6f2-a61b-44ff-8ca9-6fd134e9faaa", "created_at": "2025-05-19T19:09:18.582959+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation0", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/661bb6f2-a61b-44ff-8ca9-6fd134e9faaa", "rel": "self"}, {"href": "http://localhost/allocations/661bb6f2-a61b-44ff-8ca9-6fd134e9faaa", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ff8667c8-d752-483c-8661-7992079d6a80", "created_at": "2025-05-19T19:09:18.583717+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/ff8667c8-d752-483c-8661-7992079d6a80", "rel": "self"}, {"href": "http://localhost/allocations/ff8667c8-d752-483c-8661-7992079d6a80", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "78ab751d-d4ca-489c-84ea-80acf543b5a5", "created_at": "2025-05-19T19:09:18.584512+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/78ab751d-d4ca-489c-84ea-80acf543b5a5", "rel": "self"}, {"href": "http://localhost/allocations/78ab751d-d4ca-489c-84ea-80acf543b5a5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links [0.024595s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.052379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2a86c13d-d746-4ac6-9dc7-ab3d827cd60d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.068559s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fec554a0-84d4-4190-939e-8dfc0f29b9e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "11793c5c-6876-4299-9885-45857e861503", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/11793c5c-6876-4299-9885-45857e861503", "rel": "self"}, {"href": "http://localhost/nodes/11793c5c-6876-4299-9885-45857e861503", "rel": "bookmark"}]}, {"uuid": "7aeddf86-25f7-4d77-9064-8c55f500dbc0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7aeddf86-25f7-4d77-9064-8c55f500dbc0", "rel": "self"}, {"href": "http://localhost/nodes/7aeddf86-25f7-4d77-9064-8c55f500dbc0", "rel": "bookmark"}]}]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3286228-02e2-495e-bbc9-1058166379e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "11793c5c-6876-4299-9885-45857e861503", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/11793c5c-6876-4299-9885-45857e861503", "rel": "self"}, {"href": "http://localhost/nodes/11793c5c-6876-4299-9885-45857e861503", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=1&marker=11793c5c-6876-4299-9885-45857e861503"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.056596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ccc56a8-7d47-44c1-82b3-b728b52a3bbb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "bca32e0b-b5d7-4a64-98aa-2863b56b55a7", "created_at": "2025-05-19T19:09:18.659386+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/bca32e0b-b5d7-4a64-98aa-2863b56b55a7", "rel": "self"}, {"href": "http://localhost/allocations/bca32e0b-b5d7-4a64-98aa-2863b56b55a7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.038791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-c1061543-efae-4f5b-971c-39e7109da9ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.032349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a82b056a-cc49-400a-bc08-b3848f91203d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.037795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-50176a5a-c972-4879-b54a-5af60446c725 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.036880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b272d5f6-d809-4c34-b608-694ce6c715bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.040161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5973aac-a2c8-44a6-b820-8a9eb819e10d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:09:18.745451+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.037639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content Openstack-Request-Id: req-036e66a7-98d8-46aa-a7e4-a0a3905f71f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.098952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b951002b-6c7c-4331-bf58-917ed84bd0f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.055277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0635e444-3bce-4de7-99d1-a801c461e442 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "be3beb38-e718-4492-a3c9-6868bfda9e7b", "created_at": "2025-05-19T19:09:18.745235+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation0", "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/be3beb38-e718-4492-a3c9-6868bfda9e7b", "rel": "self"}, {"href": "http://localhost/allocations/be3beb38-e718-4492-a3c9-6868bfda9e7b", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "7328dad9-3aa1-4234-b272-864e1d6c7f91", "created_at": "2025-05-19T19:09:18.746109+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/7328dad9-3aa1-4234-b272-864e1d6c7f91", "rel": "self"}, {"href": "http://localhost/allocations/7328dad9-3aa1-4234-b272-864e1d6c7f91", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "04471540-2ca3-4610-bafb-f08b6a819325", "created_at": "2025-05-19T19:09:18.746904+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/04471540-2ca3-4610-bafb-f08b6a819325", "rel": "self"}, {"href": "http://localhost/allocations/04471540-2ca3-4610-bafb-f08b6a819325", "rel": "bookmark"}], "node_uuid": null}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.034099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b39fc176-e77d-4c06-961d-9f90c482634f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.042193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4347b52f-bc37-42c5-907f-c35156a4efa0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json_not_found [0.056824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-21a50752-f067-44b4-9ceb-ee096482a796 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.028793s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-44fb3f3c-f86f-420a-8d56-2af42ee4b120 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.052337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15f7a0da-8389-4fba-8e51-3418e87515d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed_mismatch [0.035965s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-37e43346-59cf-4518-b55d-62fcbec81f2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Not authorized.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.043755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67e4569a-ea65-4390-aefa-d1beb3684f1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "b047a666-9652-4843-a616-d0162ccf8dc9", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b047a666-9652-4843-a616-d0162ccf8dc9", "rel": "self"}, {"href": "http://localhost/chassis/b047a666-9652-4843-a616-d0162ccf8dc9", "rel": "bookmark"}]}, {"uuid": "b7d68095-5d64-4b96-8a2f-43960a810938", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b7d68095-5d64-4b96-8a2f-43960a810938", "rel": "self"}, {"href": "http://localhost/chassis/b7d68095-5d64-4b96-8a2f-43960a810938", "rel": "bookmark"}]}, {"uuid": "db29c80a-6460-43ad-908b-88c746ae7416", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/db29c80a-6460-43ad-908b-88c746ae7416", "rel": "self"}, {"href": "http://localhost/chassis/db29c80a-6460-43ad-908b-88c746ae7416", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.046470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6dc240fb-3587-435d-937a-8a76158913ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.056571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/fb372553-2229-4e66-96ce-e919f5cd9968 GOT Response: 204 No Content Openstack-Request-Id: req-c8c98c29-303c-4396-b637-a0c6b2431df5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.038530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-93d2069e-da29-41bd-9f43-a10764850855 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/chassis?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fed00e30-e932-4f7e-b5ce-423abaaf3fa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.040324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/9aaf4211-8bea-4a1e-97b5-cce425908f7b.json GOT Response: 204 No Content Openstack-Request-Id: req-5566da49-8191-45fe-bf14-f0755befd4e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.076058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-644a6712-ed70-407a-a5e6-bf2df5228c2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json_not_found [0.035321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/280b929c-508f-4423-bd7b-1c63850ccacf.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cf64ac2f-f6ad-4521-b37d-5648e7e35fe6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 280b929c-508f-4423-bd7b-1c63850ccacf.json could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.054906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a04bbb56-1496-415b-9c94-b10f2cc61434 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.041173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/1165b947-9102-4985-9d78-81097ba8299e GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.031227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.041932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a62aba43-04df-463c-8346-e7a4d96e8b03', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/a62aba43-04df-463c-8346-e7a4d96e8b03 Openstack-Request-Id: req-cb6a82b8-02c5-4b7a-aa02-f78152f1d64e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a62aba43-04df-463c-8346-e7a4d96e8b03", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a62aba43-04df-463c-8346-e7a4d96e8b03", "rel": "self"}, {"href": "http://localhost/deploy_templates/a62aba43-04df-463c-8346-e7a4d96e8b03", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/a62aba43-04df-463c-8346-e7a4d96e8b03 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e07a7ed-6b39-4449-8a19-06ee942d9403 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a62aba43-04df-463c-8346-e7a4d96e8b03", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a62aba43-04df-463c-8346-e7a4d96e8b03", "rel": "self"}, {"href": "http://localhost/deploy_templates/a62aba43-04df-463c-8346-e7a4d96e8b03", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.254344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b368cc3-e8b9-40a9-bf78-1169232b85e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "e7e89023-2002-4b3e-a001-51013513633f", "created_at": "2025-05-19T19:09:19.094957+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation0", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e7e89023-2002-4b3e-a001-51013513633f", "rel": "self"}, {"href": "http://localhost/allocations/e7e89023-2002-4b3e-a001-51013513633f", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "a9d80a22-a126-490b-9629-73bd54a5f970", "created_at": "2025-05-19T19:09:19.095729+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/a9d80a22-a126-490b-9629-73bd54a5f970", "rel": "self"}, {"href": "http://localhost/allocations/a9d80a22-a126-490b-9629-73bd54a5f970", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "11d72226-9340-4ac0-8958-7de519a8091e", "created_at": "2025-05-19T19:09:19.096939+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/11d72226-9340-4ac0-8958-7de519a8091e", "rel": "self"}, {"href": "http://localhost/allocations/11d72226-9340-4ac0-8958-7de519a8091e", "rel": "bookmark"}], "node_uuid": null}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.044439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbf97f7c-e179-4d2d-8d5d-cb82b2c775c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fa7ea7d2-9e59-49f9-a6f8-d32e50282ce6", "created_at": "2025-05-19T19:09:19.137712+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/fa7ea7d2-9e59-49f9-a6f8-d32e50282ce6", "rel": "self"}, {"href": "http://localhost/allocations/fa7ea7d2-9e59-49f9-a6f8-d32e50282ce6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.273248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-705b4a37-6d26-4fba-872b-9e5e20126f12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "07bf1f06-7aa3-46ac-8dd2-b4f8ed9e3a21", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/07bf1f06-7aa3-46ac-8dd2-b4f8ed9e3a21", "rel": "self"}, {"href": "http://localhost/deploy_templates/07bf1f06-7aa3-46ac-8dd2-b4f8ed9e3a21", "rel": "bookmark"}]}, {"uuid": "2be51899-00a8-430f-98bf-ce36a637cc48", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/2be51899-00a8-430f-98bf-ce36a637cc48", "rel": "self"}, {"href": "http://localhost/deploy_templates/2be51899-00a8-430f-98bf-ce36a637cc48", "rel": "bookmark"}]}, {"uuid": "9a73be38-d0db-41c9-b587-444932379a48", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/9a73be38-d0db-41c9-b587-444932379a48", "rel": "self"}, {"href": "http://localhost/deploy_templates/9a73be38-d0db-41c9-b587-444932379a48", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=9a73be38-d0db-41c9-b587-444932379a48"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.049834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/44c0ae11-1bda-4556-bd2a-a8de761c8260 WITH {} GOT Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.059212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76e07278-4102-4bd1-9522-f35df82ee99f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "f6f26f85-3d89-4d33-b60e-6266cd8bee8f", "links": [{"href": "http://localhost/v1/deploy_templates/f6f26f85-3d89-4d33-b60e-6266cd8bee8f", "rel": "self"}, {"href": "http://localhost/deploy_templates/f6f26f85-3d89-4d33-b60e-6266cd8bee8f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "4ff3aa16-2170-4555-af11-67ccc17c1071", "links": [{"href": "http://localhost/v1/deploy_templates/4ff3aa16-2170-4555-af11-67ccc17c1071", "rel": "self"}, {"href": "http://localhost/deploy_templates/4ff3aa16-2170-4555-af11-67ccc17c1071", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "2305fe95-e85a-4412-aa24-a79d93319c0d", "links": [{"href": "http://localhost/v1/deploy_templates/2305fe95-e85a-4412-aa24-a79d93319c0d", "rel": "self"}, {"href": "http://localhost/deploy_templates/2305fe95-e85a-4412-aa24-a79d93319c0d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,steps&limit=3&marker=2305fe95-e85a-4412-aa24-a79d93319c0d"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.039972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.056966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89712796-61ab-4517-88ec-9cc10c0cf09e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "48e95eb4-f5df-4956-8dbf-f7cb8524752b", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/48e95eb4-f5df-4956-8dbf-f7cb8524752b", "rel": "self"}, {"href": "http://localhost/deploy_templates/48e95eb4-f5df-4956-8dbf-f7cb8524752b", "rel": "bookmark"}]}, {"uuid": "da4323b8-2b25-4a45-837d-f5031f61412e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/da4323b8-2b25-4a45-837d-f5031f61412e", "rel": "self"}, {"href": "http://localhost/deploy_templates/da4323b8-2b25-4a45-837d-f5031f61412e", "rel": "bookmark"}]}, {"uuid": "a007ed9f-e321-459c-a2cc-94b27a4d0f5e", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/a007ed9f-e321-459c-a2cc-94b27a4d0f5e", "rel": "self"}, {"href": "http://localhost/deploy_templates/a007ed9f-e321-459c-a2cc-94b27a4d0f5e", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=a007ed9f-e321-459c-a2cc-94b27a4d0f5e"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.062477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation?fields=name,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00f088b2-54ae-43b3-bee3-8dfd99da10c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "name": null, "links": [{"href": "http://localhost/v1/allocations/5f2f4fdb-7f17-46ea-9f18-9d69e9dbfd6b", "rel": "self"}, {"href": "http://localhost/allocations/5f2f4fdb-7f17-46ea-9f18-9d69e9dbfd6b", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.256841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '7a9c2976-1347-42a8-884f-439f50e62467', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'priority': 10}], 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/7a9c2976-1347-42a8-884f-439f50e62467 Openstack-Request-Id: req-d87bb55f-1508-4d63-9b65-1f85f014227f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7a9c2976-1347-42a8-884f-439f50e62467", "created_at": "2025-05-19T19:09:19.317737+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7a9c2976-1347-42a8-884f-439f50e62467", "rel": "self"}, {"href": "http://localhost/deploy_templates/7a9c2976-1347-42a8-884f-439f50e62467", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.053508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-996ff17d-d840-4618-b7db-c8b687455afd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "7100846d-c5e0-4981-a945-216adc4f1fe8", "created_at": "2025-05-19T19:09:19.327385+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7100846d-c5e0-4981-a945-216adc4f1fe8", "rel": "self"}, {"href": "http://localhost/deploy_templates/7100846d-c5e0-4981-a945-216adc4f1fe8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.061324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77c5ebe3-d1da-467e-bb5f-dfee3e8b5bed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "e4a1ade5-139d-4142-ab56-a2ef1b40f662", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/e4a1ade5-139d-4142-ab56-a2ef1b40f662", "rel": "self"}, {"href": "http://localhost/allocations/e4a1ade5-139d-4142-ab56-a2ef1b40f662", "rel": "bookmark"}]}, {"uuid": "82e8851a-4dc4-4071-95c8-72d2164761b2", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/82e8851a-4dc4-4071-95c8-72d2164761b2", "rel": "self"}, {"href": "http://localhost/allocations/82e8851a-4dc4-4071-95c8-72d2164761b2", "rel": "bookmark"}]}, {"uuid": "eb7c8bb1-32d4-4dc3-b767-b25fb2d41e66", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/eb7c8bb1-32d4-4dc3-b767-b25fb2d41e66", "rel": "self"}, {"href": "http://localhost/allocations/eb7c8bb1-32d4-4dc3-b767-b25fb2d41e66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.060106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b19e8e6f-501a-446d-a5e9-4444b484011f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/b19e8e6f-501a-446d-a5e9-4444b484011f Openstack-Request-Id: req-e6f0c5dc-f304-4217-8600-613a9218c17b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b19e8e6f-501a-446d-a5e9-4444b484011f", "created_at": "2025-05-19T19:09:19.379570+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b19e8e6f-501a-446d-a5e9-4444b484011f", "rel": "self"}, {"href": "http://localhost/deploy_templates/b19e8e6f-501a-446d-a5e9-4444b484011f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/b19e8e6f-501a-446d-a5e9-4444b484011f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4fa1605-7a22-4de4-97d6-2d6b33103b02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b19e8e6f-501a-446d-a5e9-4444b484011f", "created_at": "2025-05-19T19:09:19.379570+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b19e8e6f-501a-446d-a5e9-4444b484011f", "rel": "self"}, {"href": "http://localhost/deploy_templates/b19e8e6f-501a-446d-a5e9-4444b484011f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.038075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-535db3be-79a4-442d-9d0a-2dc1d7913d12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"links": [{"href": "http://localhost/v1/allocations/2c8f38c0-aca1-4447-94d2-d3e80d21e72c", "rel": "self"}, {"href": "http://localhost/allocations/2c8f38c0-aca1-4447-94d2-d3e80d21e72c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/a820e08a-2b03-4eed-9a56-c9573e80d803", "rel": "self"}, {"href": "http://localhost/allocations/a820e08a-2b03-4eed-9a56-c9573e80d803", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=node_uuid&limit=2&marker=a820e08a-2b03-4eed-9a56-c9573e80d803"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.061380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b896699-f10c-48a1-94ec-fb8cb796e745 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "51f5693b-5aa2-40ad-999c-fbe84de80e1e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/51f5693b-5aa2-40ad-999c-fbe84de80e1e", "rel": "self"}, {"href": "http://localhost/deploy_templates/51f5693b-5aa2-40ad-999c-fbe84de80e1e", "rel": "bookmark"}]}]} GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-681ca912-53ad-4fa6-81aa-e3c9e92e79b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "51f5693b-5aa2-40ad-999c-fbe84de80e1e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/51f5693b-5aa2-40ad-999c-fbe84de80e1e", "rel": "self"}, {"href": "http://localhost/deploy_templates/51f5693b-5aa2-40ad-999c-fbe84de80e1e", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.041530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '1ad64ba7-1a84-47b8-b9dc-66d7725c72d6', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-eed41197-6113-43d2-b71d-b94cac4284d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.032716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/ad58449a-4ddb-4fbb-889e-d35b0907717f?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4fcad77a-99f9-45c7-a903-fdbe3c1cd012 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.444718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ab42dc71-d3cc-47ab-b683-c12f8649cbf6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.043374s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=name&detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5d9fdfa-8ebb-4733-a83a-fd6aa634b631 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "9cbdd908-7db3-4b16-b7b1-2994d270cb2b", "created_at": "2025-05-19T19:09:19.443347+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9cbdd908-7db3-4b16-b7b1-2994d270cb2b", "rel": "self"}, {"href": "http://localhost/deploy_templates/9cbdd908-7db3-4b16-b7b1-2994d270cb2b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "fa891aad-f27f-4f9d-bfb3-a4a9e94d6370", "created_at": "2025-05-19T19:09:19.440569+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fa891aad-f27f-4f9d-bfb3-a4a9e94d6370", "rel": "self"}, {"href": "http://localhost/deploy_templates/fa891aad-f27f-4f9d-bfb3-a4a9e94d6370", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "961cd8ff-e85d-4c67-b60f-14638f13e95a", "created_at": "2025-05-19T19:09:19.437880+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/961cd8ff-e85d-4c67-b60f-14638f13e95a", "rel": "self"}, {"href": "http://localhost/deploy_templates/961cd8ff-e85d-4c67-b60f-14638f13e95a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.038486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/0e30941b-3085-4a0c-90a7-ef8e34df3908 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3463412-f0fe-4f31-874e-aa5ede6fbede X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0e30941b-3085-4a0c-90a7-ef8e34df3908", "created_at": "2025-05-19T19:09:19.467431+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0e30941b-3085-4a0c-90a7-ef8e34df3908", "rel": "self"}, {"href": "http://localhost/allocations/0e30941b-3085-4a0c-90a7-ef8e34df3908", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.052815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/e34a9cd4-a4ce-4cd2-8b55-36b15b93c665 Openstack-Request-Id: req-79d0459d-f4d5-403c-98a8-b28d0a99f358 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e34a9cd4-a4ce-4cd2-8b55-36b15b93c665", "created_at": "2025-05-19T19:09:19.461941+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e34a9cd4-a4ce-4cd2-8b55-36b15b93c665", "rel": "self"}, {"href": "http://localhost/deploy_templates/e34a9cd4-a4ce-4cd2-8b55-36b15b93c665", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/e34a9cd4-a4ce-4cd2-8b55-36b15b93c665 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d325b6e-4a53-40c4-b4ae-87831e6bbb90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e34a9cd4-a4ce-4cd2-8b55-36b15b93c665", "created_at": "2025-05-19T19:09:19.461941+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e34a9cd4-a4ce-4cd2-8b55-36b15b93c665", "rel": "self"}, {"href": "http://localhost/deploy_templates/e34a9cd4-a4ce-4cd2-8b55-36b15b93c665", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.075340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-236a0871-40df-4630-a6a4-af1001a16f35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.034876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '2e3b8574-1d1b-40ad-94a2-2cb9e6ab5b23', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.098699s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a3355883-0c65-45e7-beb7-7901c183e3cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.038205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b405e406-c736-4ded-8759-7243417dc370', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b3a6371b-cc95-4ab9-addf-ce1b9c66b866 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.087452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d1f7a04e-c758-4370-862e-5a893a02ec2b?fields=resource_class,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff4ce912-5b25-4e4b-84a8-7f285e13d841 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "resource_class": "baremetal", "links": [{"href": "http://localhost/v1/allocations/d1f7a04e-c758-4370-862e-5a893a02ec2b", "rel": "self"}, {"href": "http://localhost/allocations/d1f7a04e-c758-4370-862e-5a893a02ec2b", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.029427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '526523e6-89c9-4c83-9ecd-03561f0e4eb8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e5e1632c-5b43-465d-a599-a9cf9f337785 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'object', 'null'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.033179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f9a1479-aad3-4ff6-958c-c212540b5781 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"links": [{"href": "http://localhost/v1/deploy_templates/1495c8b0-90f7-49fb-b7d0-a9d0ec7c911f", "rel": "self"}, {"href": "http://localhost/deploy_templates/1495c8b0-90f7-49fb-b7d0-a9d0ec7c911f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.093192s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}, {'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}, {'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-abbfa0f2-dd3d-4e12-a344-7d90b8ab266e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.060023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8da19b1b-af00-4068-8d34-918476f59b33 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.048033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ffd6cfd1-96ea-43c0-9287-96b5ea0237b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": []} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.071562s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '56ac2e2c-493e-41c9-8a2e-56fc4f45ca9c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}, 'foo': 'bar'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9307eb04-927f-4ac1-8b7f-0c8b07c37bd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.031146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.067603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/ba!na!na! WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.083088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-c53ee5bf-2e7c-40eb-bfad-69c72b4d57dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.039694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ae6f9ff-9021-4f0f-8c81-7e079cdc001c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "7bf993e9-25cf-4419-a876-356fd4b2e10d", "links": [{"href": "http://localhost/v1/deploy_templates/7bf993e9-25cf-4419-a876-356fd4b2e10d", "rel": "self"}, {"href": "http://localhost/deploy_templates/7bf993e9-25cf-4419-a876-356fd4b2e10d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "69968dc6-9b09-4627-869a-7be043e087d4", "links": [{"href": "http://localhost/v1/deploy_templates/69968dc6-9b09-4627-869a-7be043e087d4", "rel": "self"}, {"href": "http://localhost/deploy_templates/69968dc6-9b09-4627-869a-7be043e087d4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "8444fc49-0d43-452d-afd0-8e6d8ecdba2d", "links": [{"href": "http://localhost/v1/deploy_templates/8444fc49-0d43-452d-afd0-8e6d8ecdba2d", "rel": "self"}, {"href": "http://localhost/deploy_templates/8444fc49-0d43-452d-afd0-8e6d8ecdba2d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.051810s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 42, 'uuid': 'a9b75f43-a030-4a55-a873-8e9fbbabeaed', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a0431eb-932d-4b64-8280-8c0d3da5773b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_double_json_in_name [0.039668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/62233af0-6c8f-4c60-9336-175944747aeb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cdad27c-3c5d-44ce-8f22-ade12d7fa987 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "62233af0-6c8f-4c60-9336-175944747aeb", "created_at": "2025-05-19T19:09:19.723722+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "pg.json.json", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/62233af0-6c8f-4c60-9336-175944747aeb", "rel": "self"}, {"href": "http://localhost/allocations/62233af0-6c8f-4c60-9336-175944747aeb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.037794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1356c40-c43d-4594-9716-6a69549ca6ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/c13d4a98-77f0-4284-9c0b-0ac9e8ea9bc1", "rel": "self"}, {"href": "http://localhost/deploy_templates/c13d4a98-77f0-4284-9c0b-0ac9e8ea9bc1", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/825d1625-87ed-43ec-8d75-f7d365ddc2ee", "rel": "self"}, {"href": "http://localhost/deploy_templates/825d1625-87ed-43ec-8d75-f7d365ddc2ee", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=825d1625-87ed-43ec-8d75-f7d365ddc2ee"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.063157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': None, 'uuid': '4af20446-8102-41db-a155-4032abcb69be', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51b989ad-f9de-4caa-8848-19f6b41f4356 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.085517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.delete_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-5dc72a86-69a9-46ea-9472-572be25aa7bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.055054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/513330bc-aa8c-4bb4-9951-124d3a03765c.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9b8c5f2-986f-47b4-8332-ac73ec56ab2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "513330bc-aa8c-4bb4-9951-124d3a03765c", "created_at": "2025-05-19T19:09:19.767789+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/513330bc-aa8c-4bb4-9951-124d3a03765c", "rel": "self"}, {"href": "http://localhost/allocations/513330bc-aa8c-4bb4-9951-124d3a03765c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.060027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/26780b47-df38-4b2f-9246-082e4f88168f?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-621d9680-50fd-48c8-b1d8-0bc46d51c8cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.037599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/1dccc76b-ba7a-4ac3-8e19-081c88113c72 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc5a0675-b357-406a-a326-01e8d31d0547 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1dccc76b-ba7a-4ac3-8e19-081c88113c72", "created_at": "2025-05-19T19:09:19.840014+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1dccc76b-ba7a-4ac3-8e19-081c88113c72", "rel": "self"}, {"href": "http://localhost/deploy_templates/1dccc76b-ba7a-4ac3-8e19-081c88113c72", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id [0.074408s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8afd1347-1911-45b2-8bb8-8d0f72631a36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.079969s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'dd2f24cb-fdbf-42cc-8943-b5343d5511cb', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dd14230e-897b-4397-9c0f-3e6fc68fdded X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.033744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/81f5d1fa-fb98-4849-afe5-48b7737e78f0?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c92f5bca-d4e5-4497-9359-b1735635860e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/81f5d1fa-fb98-4849-afe5-48b7737e78f0", "rel": "self"}, {"href": "http://localhost/deploy_templates/81f5d1fa-fb98-4849-afe5-48b7737e78f0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.088052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/23a9b046-3c0b-44f8-a119-3b4043e9c98c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-704c1538-e74b-48c1-bcda-48d6e831545b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "23a9b046-3c0b-44f8-a119-3b4043e9c98c", "created_at": "2025-05-19T19:09:19.844203+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "pg.json", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/23a9b046-3c0b-44f8-a119-3b4043e9c98c", "rel": "self"}, {"href": "http://localhost/allocations/23a9b046-3c0b-44f8-a119-3b4043e9c98c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.039216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6868976c-0138-4b97-b061-d8612302794c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e98b195f-2a7d-4b60-bfed-2c03814b005e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.031210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/29eb5509-e01c-4216-b3d8-1bed01eb541a WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.032017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/30b5d615-68a5-408c-921d-ffd98558bc64.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1029f338-a345-4d96-a7c4-81d1a282a29c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "30b5d615-68a5-408c-921d-ffd98558bc64", "created_at": "2025-05-19T19:09:19.938085+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/30b5d615-68a5-408c-921d-ffd98558bc64", "rel": "self"}, {"href": "http://localhost/deploy_templates/30b5d615-68a5-408c-921d-ffd98558bc64", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.101206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT']}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c459074f-ebc5-4ee9-9c8e-b003770e652e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.067692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '45cb20cc-6f4b-4f7c-a40e-02b9378349d5', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e890c62-2261-4916-aea9-7c80a57fc267 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json_not_found [0.043222s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/7e0398f7-13bf-4cc0-aefb-ac1655b00b78.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b33ce2aa-00f9-470d-b8bf-4f719185a7df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 7e0398f7-13bf-4cc0-aefb-ac1655b00b78.json could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_not_found [0.108751s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/71204f72-7744-400b-b8a6-fbe3cc275cee.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c067dcd2-1248-4795-b820-4ade05ebe6c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 71204f72-7744-400b-b8a6-fbe3cc275cee.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.037578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '3e1aa45f-cbb9-42a0-98e9-03e1674b5f98', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10, 'foo': 'bar'}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fe92bb2a-0b2c-4ce3-b1cf-20837ba4fa91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.040712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/382ff6e6-c536-43aa-8313-7caa75d33489 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c298668-ece2-424c-94ff-bfe20a8fcd1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "382ff6e6-c536-43aa-8313-7caa75d33489", "created_at": "2025-05-19T19:09:20.015087+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/382ff6e6-c536-43aa-8313-7caa75d33489", "rel": "self"}, {"href": "http://localhost/deploy_templates/382ff6e6-c536-43aa-8313-7caa75d33489", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.033755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b9a9151b-d043-4285-9e4a-d99fd2d1ed79', 'steps': [{'interface': [3], 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2c6e329f-19a0-46ba-bfc2-b4d06f03c977 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.091232s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': 'DEVICE_ID_SHOULD_BE_UUID', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d6b1fac-7769-4676-8486-5659ff701426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.064934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/02989496-6868-4800-b48a-024297b1bdd7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-698707c0-13a0-49cc-8cb2-2d54bf18ae58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "02989496-6868-4800-b48a-024297b1bdd7", "created_at": "2025-05-19T19:09:20.063669+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "pg.1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/02989496-6868-4800-b48a-024297b1bdd7", "rel": "self"}, {"href": "http://localhost/allocations/02989496-6868-4800-b48a-024297b1bdd7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.035588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'e9cac886-71e3-4e75-b95b-3b0ce377bf72', 'steps': [{'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ea71860d-2896-4ae9-8d63-b97a1105e005 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.096884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-298543b9-7bfe-4514-8484-17e5fb7a401c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1a29f92-451c-49ad-b778-2dad8f7a4e36", "created_at": "2025-05-19T19:09:20.090037+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36", "rel": "self"}, {"href": "http://localhost/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-547abc77-2b77-4727-a3ff-5732935737ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1a29f92-451c-49ad-b778-2dad8f7a4e36", "created_at": "2025-05-19T19:09:20.090037+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36", "rel": "self"}, {"href": "http://localhost/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3df38683-83af-4efd-842e-4e8fd1ee3019 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1a29f92-451c-49ad-b778-2dad8f7a4e36", "created_at": "2025-05-19T19:09:20.090037+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36", "rel": "self"}, {"href": "http://localhost/deploy_templates/e1a29f92-451c-49ad-b778-2dad8f7a4e36", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.076104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'INVALID_MAC_ADDRESS', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dbed84bf-f4c7-4905-a6ff-b6fbff919064 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.049561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a15fc7fd-221e-40f3-8132-3d3bd4e7837b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': -1}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f666ff28-9c72-42e6-b56e-06373bd013c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field [0.066731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/34734297-dc48-448f-9447-e40d623ed591?fields=owner WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ac65ec9-c30a-4120-9f9e-a1143b824a93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"owner": "12345", "links": [{"href": "http://localhost/v1/allocations/34734297-dc48-448f-9447-e40d623ed591", "rel": "self"}, {"href": "http://localhost/allocations/34734297-dc48-448f-9447-e40d623ed591", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.046380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '1fb5d52c-d38f-4524-91bb-b6915bbf3692', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1e940329-3101-43c2-ac94-59f0660ee9a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.054160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/0b1be27b-e39e-4923-9827-a68dbf012250 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72617dc9-9e98-4eb3-8450-4cca616b2a2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0b1be27b-e39e-4923-9827-a68dbf012250", "created_at": "2025-05-19T19:09:20.185785+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0b1be27b-e39e-4923-9827-a68dbf012250", "rel": "self"}, {"href": "http://localhost/allocations/0b1be27b-e39e-4923-9827-a68dbf012250", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/0b1be27b-e39e-4923-9827-a68dbf012250 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5364bfd0-b4f4-402f-b5c2-24d0162bc426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0b1be27b-e39e-4923-9827-a68dbf012250", "created_at": "2025-05-19T19:09:20.185785+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0b1be27b-e39e-4923-9827-a68dbf012250", "rel": "self"}, {"href": "http://localhost/allocations/0b1be27b-e39e-4923-9827-a68dbf012250", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /allocations/0b1be27b-e39e-4923-9827-a68dbf012250 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5371567-8311-4ee2-8868-c5adeab0742c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0b1be27b-e39e-4923-9827-a68dbf012250", "created_at": "2025-05-19T19:09:20.185785+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0b1be27b-e39e-4923-9827-a68dbf012250", "rel": "self"}, {"href": "http://localhost/allocations/0b1be27b-e39e-4923-9827-a68dbf012250", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.072758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': 'PORT_ID_SHOULD_BE_UUID', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-65b8f127-f801-4321-a311-330d0ec4815a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.086543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4335d074-83f5-4375-9a4a-d9f03a68d31d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "19c4790b-e6be-447c-8d10-828fdad092fe", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/19c4790b-e6be-447c-8d10-828fdad092fe", "rel": "self"}, {"href": "http://localhost/deploy_templates/19c4790b-e6be-447c-8d10-828fdad092fe", "rel": "bookmark"}]}, {"uuid": "b3bbbe95-40dc-4ac4-a81e-e3dc6b500aad", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b3bbbe95-40dc-4ac4-a81e-e3dc6b500aad", "rel": "self"}, {"href": "http://localhost/deploy_templates/b3bbbe95-40dc-4ac4-a81e-e3dc6b500aad", "rel": "bookmark"}]}, {"uuid": "164b179d-3656-4592-9448-f476a9a38752", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/164b179d-3656-4592-9448-f476a9a38752", "rel": "self"}, {"href": "http://localhost/deploy_templates/164b179d-3656-4592-9448-f476a9a38752", "rel": "bookmark"}]}, {"uuid": "7e6f364c-9808-4393-953e-c9211b756a68", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/7e6f364c-9808-4393-953e-c9211b756a68", "rel": "self"}, {"href": "http://localhost/deploy_templates/7e6f364c-9808-4393-953e-c9211b756a68", "rel": "bookmark"}]}, {"uuid": "37ba2038-8c99-4daf-ac37-0198f55a7905", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/37ba2038-8c99-4daf-ac37-0198f55a7905", "rel": "self"}, {"href": "http://localhost/deploy_templates/37ba2038-8c99-4daf-ac37-0198f55a7905", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.067664s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '2ef98db1-0a23-45fc-beb5-66b7cceb658b', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c0b9419-d95c-4e75-b1a2-d14041fd19a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.068955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-53b7e785-d4c6-42d1-a824-e8c072b04fec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.036554s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '51eab8fb-ed74-4059-9dc4-f81505b9372c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/51eab8fb-ed74-4059-9dc4-f81505b9372c Openstack-Request-Id: req-ef63d7c6-d163-4326-8cd4-fc9a9275737f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "51eab8fb-ed74-4059-9dc4-f81505b9372c", "created_at": "2025-05-19T19:09:20.287474+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/51eab8fb-ed74-4059-9dc4-f81505b9372c", "rel": "self"}, {"href": "http://localhost/deploy_templates/51eab8fb-ed74-4059-9dc4-f81505b9372c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.060889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1be7acf2-09ca-456a-bea7-008958f94879 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "5ee0a6e9-ab41-4ca1-bdd0-8db0c6bab85a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/5ee0a6e9-ab41-4ca1-bdd0-8db0c6bab85a", "rel": "self"}, {"href": "http://localhost/deploy_templates/5ee0a6e9-ab41-4ca1-bdd0-8db0c6bab85a", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.097531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7715833-ab71-4623-9ad6-06e71998436c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "f82bfe4a-b9be-4e0f-87db-881be127e5d6", "created_at": "2025-05-19T19:09:20.263421+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation0", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/f82bfe4a-b9be-4e0f-87db-881be127e5d6", "rel": "self"}, {"href": "http://localhost/allocations/f82bfe4a-b9be-4e0f-87db-881be127e5d6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6cbe6558-fc7b-4d4f-8524-1f472941c78e", "created_at": "2025-05-19T19:09:20.264648+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/6cbe6558-fc7b-4d4f-8524-1f472941c78e", "rel": "self"}, {"href": "http://localhost/allocations/6cbe6558-fc7b-4d4f-8524-1f472941c78e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6d517277-0fe3-47ed-9460-e2fcf8908116", "created_at": "2025-05-19T19:09:20.266753+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/6d517277-0fe3-47ed-9460-e2fcf8908116", "rel": "self"}, {"href": "http://localhost/allocations/6d517277-0fe3-47ed-9460-e2fcf8908116", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ace3d5c6-35a2-4dc9-a17e-49040a7b5a5f", "created_at": "2025-05-19T19:09:20.268103+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation3", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/ace3d5c6-35a2-4dc9-a17e-49040a7b5a5f", "rel": "self"}, {"href": "http://localhost/allocations/ace3d5c6-35a2-4dc9-a17e-49040a7b5a5f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "857e2180-2ddf-495a-b9b6-5978d3e74b80", "created_at": "2025-05-19T19:09:20.268917+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation4", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/857e2180-2ddf-495a-b9b6-5978d3e74b80", "rel": "self"}, {"href": "http://localhost/allocations/857e2180-2ddf-495a-b9b6-5978d3e74b80", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.033529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': 'e725f231-61cf-4c0e-90ba-a0dffb5708ef', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-32e23de3-2d24-4d58-9086-aa2b078a24b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.048521s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'f607ddde-dc34-44f6-b447-8a3dc1fc74a2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-72d44627-8094-4bd6-9a3a-4d4c536c84d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.076939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.unbind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-95662a0b-82d8-421a-a626-4b62bef40437 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.083441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-392d9ae4-c63b-4ca3-b751-779d605362ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "3ed3b1a5-25de-42f8-9643-17a40cdb271a", "created_at": "2025-05-19T19:09:20.377593+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/3ed3b1a5-25de-42f8-9643-17a40cdb271a", "rel": "self"}, {"href": "http://localhost/allocations/3ed3b1a5-25de-42f8-9643-17a40cdb271a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.095492s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/f095bece-d31e-41ad-87c7-de034efd013f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebc79597-d91d-43ae-b547-cd008859d915 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f095bece-d31e-41ad-87c7-de034efd013f", "created_at": "2025-05-19T19:09:20.366556+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f095bece-d31e-41ad-87c7-de034efd013f", "rel": "self"}, {"href": "http://localhost/deploy_templates/f095bece-d31e-41ad-87c7-de034efd013f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.036593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'uuid': '3c69f54b-9197-46d7-b797-5882fa50097b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-79f368b7-db40-4bbb-8dcd-e50c24f34a34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.071489s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24a2dc0e-4872-40cc-b090-17239641d137 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "1a2a7c8a-d403-4e24-bff1-3f9ef509a77a", "created_at": "2025-05-19T19:09:20.426908+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1a2a7c8a-d403-4e24-bff1-3f9ef509a77a", "rel": "self"}, {"href": "http://localhost/allocations/1a2a7c8a-d403-4e24-bff1-3f9ef509a77a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6ee4005f-f461-4e77-8012-84f2aa6f9542", "created_at": "2025-05-19T19:09:20.424789+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation0", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/6ee4005f-f461-4e77-8012-84f2aa6f9542", "rel": "self"}, {"href": "http://localhost/allocations/6ee4005f-f461-4e77-8012-84f2aa6f9542", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ef84f6c8-a5a7-414f-bf8a-04eb99e86da0", "created_at": "2025-05-19T19:09:20.425835+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/ef84f6c8-a5a7-414f-bf8a-04eb99e86da0", "rel": "self"}, {"href": "http://localhost/allocations/ef84f6c8-a5a7-414f-bf8a-04eb99e86da0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.050789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '060aba9a-f4ac-44a3-9552-3c6891212081', 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41d084b0-ecaa-40a9-a8ac-4d021b059c61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.102921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-974b1178-2ca8-48da-afb9-58f430598333 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.104906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6221e6e0-6e76-4ebf-a316-acda84d5845b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "005158b5-0684-4c1d-954d-a2527ab84cce", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/005158b5-0684-4c1d-954d-a2527ab84cce", "rel": "self"}, {"href": "http://localhost/deploy_templates/005158b5-0684-4c1d-954d-a2527ab84cce", "rel": "bookmark"}]}, {"uuid": "54cde4b9-02e2-45dc-ac90-8c878de5efa4", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/54cde4b9-02e2-45dc-ac90-8c878de5efa4", "rel": "self"}, {"href": "http://localhost/deploy_templates/54cde4b9-02e2-45dc-ac90-8c878de5efa4", "rel": "bookmark"}]}, {"uuid": "71848f6a-b8c3-4997-be2c-3e080e446296", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/71848f6a-b8c3-4997-be2c-3e080e446296", "rel": "self"}, {"href": "http://localhost/deploy_templates/71848f6a-b8c3-4997-be2c-3e080e446296", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.094335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f166130-1d08-44d0-a564-780854864a63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "1fe8a5f4-3734-4c41-8a53-13db8bb5e2e1", "created_at": "2025-05-19T19:09:20.538875+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation1", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1fe8a5f4-3734-4c41-8a53-13db8bb5e2e1", "rel": "self"}, {"href": "http://localhost/allocations/1fe8a5f4-3734-4c41-8a53-13db8bb5e2e1", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "f7a6c371-5668-4036-b0e0-6c9f355d950d", "created_at": "2025-05-19T19:09:20.538066+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation2", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/f7a6c371-5668-4036-b0e0-6c9f355d950d", "rel": "self"}, {"href": "http://localhost/allocations/f7a6c371-5668-4036-b0e0-6c9f355d950d", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b46bc912-d308-49cd-a129-16d76f22c6f8", "created_at": "2025-05-19T19:09:20.533924+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "allocation3", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b46bc912-d308-49cd-a129-16d76f22c6f8", "rel": "self"}, {"href": "http://localhost/allocations/b46bc912-d308-49cd-a129-16d76f22c6f8", "rel": "bookmark"}], "node_uuid": null}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.086030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'aadc6147-b845-4c55-b186-15180cf6740d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-92056682-33f1-42f2-ac89-438e34841b99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.077854s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-f17e890b-4d72-41ee-b465-d5d55442ad5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.075019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=name&detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e4a28c5-60d1-43a9-8bed-4a4e08e7f376 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "fdc09cd0-49f5-4900-b350-5ae762be1c03", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/fdc09cd0-49f5-4900-b350-5ae762be1c03", "rel": "self"}, {"href": "http://localhost/deploy_templates/fdc09cd0-49f5-4900-b350-5ae762be1c03", "rel": "bookmark"}]}, {"uuid": "6198a7ca-a72b-491d-93c1-a8818c08903b", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/6198a7ca-a72b-491d-93c1-a8818c08903b", "rel": "self"}, {"href": "http://localhost/deploy_templates/6198a7ca-a72b-491d-93c1-a8818c08903b", "rel": "bookmark"}]}, {"uuid": "eeb0fd02-2806-4129-bde2-ca266bf599db", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/eeb0fd02-2806-4129-bde2-ca266bf599db", "rel": "self"}, {"href": "http://localhost/deploy_templates/eeb0fd02-2806-4129-bde2-ca266bf599db", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event [0.052863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-022d7d92-8fd6-49b9-94b3-c3028e47e301 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.064419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '3eb16ad3-f331-4875-bcb3-9cf65602e07f', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-465e53a1-9d6d-46f7-a94f-cd6c2bd69ca3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.076697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d098af2b-786d-40a8-ba17-473db510b9c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/allocations?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dbdd9e82-9d4e-4b4e-bf93-085d57de4f2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/allocations?sort_key=internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a28d50f-3a68-47a5-9dcc-39b56d54a899 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/allocations?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-912db08f-0045-472a-92c0-eb31cfc94f43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.062102s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-28a28a24-5125-4ea6-b221-fd88792cc6e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/deploy_templates?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9732e302-1a75-47fd-b2f6-bb8ec896b8a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/deploy_templates?sort_key=steps WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-34ef10ee-bbe4-4977-91e4-59bc19e7504a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.045642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '115a1c37-1504-4c45-8f89-c48caced02fd', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-15281540-39f1-46d6-81ac-1b7764871965 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.065727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-754e404c-1f0d-4ae8-9c5d-38c1c85af1e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill [0.069399s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '47671dce-2297-4668-a3a2-25d775b67647', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/47671dce-2297-4668-a3a2-25d775b67647 Openstack-Request-Id: req-df823d0e-f66e-4c8e-ac0b-045511d49027 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "47671dce-2297-4668-a3a2-25d775b67647", "created_at": "2025-05-19T19:09:20.693357+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/47671dce-2297-4668-a3a2-25d775b67647", "rel": "self"}, {"href": "http://localhost/allocations/47671dce-2297-4668-a3a2-25d775b67647", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/47671dce-2297-4668-a3a2-25d775b67647 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-207c58c0-c4dc-41d8-a12f-4dc5d3c4134e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "47671dce-2297-4668-a3a2-25d775b67647", "created_at": "2025-05-19T19:09:20.693357+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/47671dce-2297-4668-a3a2-25d775b67647", "rel": "self"}, {"href": "http://localhost/allocations/47671dce-2297-4668-a3a2-25d775b67647", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.034804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '5fa0e641-5b1d-4e00-99d6-34aa3462ab4b', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6c1f2917-30f7-4894-889a-dade211776b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.034451s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '0ba51f16-1605-458a-aace-56b30b7dd147', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/0ba51f16-1605-458a-aace-56b30b7dd147 Openstack-Request-Id: req-f573e90d-8989-4b19-b404-a73618b2cf09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0ba51f16-1605-458a-aace-56b30b7dd147", "created_at": "2025-05-19T19:09:20.743974+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0ba51f16-1605-458a-aace-56b30b7dd147", "rel": "self"}, {"href": "http://localhost/deploy_templates/0ba51f16-1605-458a-aace-56b30b7dd147", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version [0.064927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0b3965e-09e7-4f63-a213-670f1a032c4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.122594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/3a27c893-00f9-41b5-beb5-7701fa240e61 WITH [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'priority': 10}, 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ac3b878-3269-45fb-bf12-a9341d45746d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3a27c893-00f9-41b5-beb5-7701fa240e61", "created_at": "2025-05-19T19:09:20.700688+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3a27c893-00f9-41b5-beb5-7701fa240e61", "rel": "self"}, {"href": "http://localhost/deploy_templates/3a27c893-00f9-41b5-beb5-7701fa240e61", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.074352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/561eb7fd-0ed1-4999-8ea7-9718868a8898 Openstack-Request-Id: req-e0b39564-00ba-4cec-80b9-0c04c11b8924 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "561eb7fd-0ed1-4999-8ea7-9718868a8898", "created_at": "2025-05-19T19:09:20.747183+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "bm-super", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/561eb7fd-0ed1-4999-8ea7-9718868a8898", "rel": "self"}, {"href": "http://localhost/allocations/561eb7fd-0ed1-4999-8ea7-9718868a8898", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/561eb7fd-0ed1-4999-8ea7-9718868a8898 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-976a7b2c-d2ed-4e6b-9496-8d8195dbd2f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "561eb7fd-0ed1-4999-8ea7-9718868a8898", "created_at": "2025-05-19T19:09:20.747183+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "bm-super", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/561eb7fd-0ed1-4999-8ea7-9718868a8898", "rel": "self"}, {"href": "http://localhost/allocations/561eb7fd-0ed1-4999-8ea7-9718868a8898", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.052326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '23980844-145f-4f32-8fd3-29fe6ff0bddb', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/23980844-145f-4f32-8fd3-29fe6ff0bddb Openstack-Request-Id: req-c5a301f0-fa5f-47d9-8ad2-2494a0d883ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "23980844-145f-4f32-8fd3-29fe6ff0bddb", "created_at": "2025-05-19T19:09:20.793341+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/23980844-145f-4f32-8fd3-29fe6ff0bddb", "rel": "self"}, {"href": "http://localhost/deploy_templates/23980844-145f-4f32-8fd3-29fe6ff0bddb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.051087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '28d5bf25-480d-4dc9-9af8-10a13fdb3eea', 'owner': None, 'node': '8cb546ba-c559-4473-86a9-c0002dec85f2'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-10e5bf0b-7d89-4bad-85e3-8d5115572ca4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8cb546ba-c559-4473-86a9-c0002dec85f2 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.031299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-42d3afbe-02f5-4f29-afda-33d941236222 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.57 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot set node when creating an allocation in this API version\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.108855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0c0a2729-a2b3-4445-8c6c-6b9a4b9459ac WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7efe8814-9774-485d-b095-dd9675ed3272 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.128604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}, {'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}, {'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-07d47dcb-2414-4d5f-8e8c-d1a5183816c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.106822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6afb055e-bc90-46d4-9dd5-ed1ce1d4168e', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-832f9cb7-8dc5-4e07-9896-365412268160 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.064138s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '47402d77-70ac-4234-97ae-0e4e33f1db00', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/47402d77-70ac-4234-97ae-0e4e33f1db00 Openstack-Request-Id: req-86f47557-d454-41c5-9f2e-2999c7baf48a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "47402d77-70ac-4234-97ae-0e4e33f1db00", "created_at": "2025-05-19T19:09:20.905748+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/47402d77-70ac-4234-97ae-0e4e33f1db00", "rel": "self"}, {"href": "http://localhost/allocations/47402d77-70ac-4234-97ae-0e4e33f1db00", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/47402d77-70ac-4234-97ae-0e4e33f1db00 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b44735e-fb1f-40ba-b843-431790d2330f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "47402d77-70ac-4234-97ae-0e4e33f1db00", "created_at": "2025-05-19T19:09:20.905748+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/47402d77-70ac-4234-97ae-0e4e33f1db00", "rel": "self"}, {"href": "http://localhost/allocations/47402d77-70ac-4234-97ae-0e4e33f1db00", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field [0.055080s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events [0.076531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-9b42fe25-ac07-4210-adda-8ad80d993315 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.086315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/fbc283c9-2a21-4609-b840-1cee97e6f7db WITH [{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-081b3a7e-0618-415e-8c5e-190e90a9f16b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.067437s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/d2eae28f-5ccc-453e-907e-bcfefc591bb9 Openstack-Request-Id: req-6033dce6-d4a1-499e-81ef-020338257bda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d2eae28f-5ccc-453e-907e-bcfefc591bb9", "created_at": "2025-05-19T19:09:20.975747+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "bm-super", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/d2eae28f-5ccc-453e-907e-bcfefc591bb9", "rel": "self"}, {"href": "http://localhost/allocations/d2eae28f-5ccc-453e-907e-bcfefc591bb9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/d2eae28f-5ccc-453e-907e-bcfefc591bb9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf30bbb6-1555-44b6-aff0-29b738a68848 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d2eae28f-5ccc-453e-907e-bcfefc591bb9", "created_at": "2025-05-19T19:09:20.975747+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "bm-super", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/d2eae28f-5ccc-453e-907e-bcfefc591bb9", "rel": "self"}, {"href": "http://localhost/allocations/d2eae28f-5ccc-453e-907e-bcfefc591bb9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type [0.027655s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.027938s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.070298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/99ee1cd4-1c6b-4e61-9522-a2bd305832b1 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6ce38bdb-1bc8-4bcd-a24c-927689ee109d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.050209s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b929f2da-b67a-4bd8-ab3e-db6059dba90e', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/b929f2da-b67a-4bd8-ab3e-db6059dba90e Openstack-Request-Id: req-cd4e9380-1684-467d-a4ba-d8eec217e400 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b929f2da-b67a-4bd8-ab3e-db6059dba90e", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b929f2da-b67a-4bd8-ab3e-db6059dba90e", "rel": "self"}, {"href": "http://localhost/allocations/b929f2da-b67a-4bd8-ab3e-db6059dba90e", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/b929f2da-b67a-4bd8-ab3e-db6059dba90e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b3d2c8a-ea94-414b-a4fd-39f4d68a07ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b929f2da-b67a-4bd8-ab3e-db6059dba90e", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b929f2da-b67a-4bd8-ab3e-db6059dba90e", "rel": "self"}, {"href": "http://localhost/allocations/b929f2da-b67a-4bd8-ab3e-db6059dba90e", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.022794s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.086902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.delete_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-1f218d23-0707-462c-b52d-2df050eec1e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.031018s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.040421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ed9a5dfa-dcb8-440e-9750-766d6eed3f28', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e81ada9-8294-4211-8df4-df680be389bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.034964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '24964ef4-e0dc-4117-bcf1-05fddaefbb2d', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-02b20e32-ea77-4347-8bb9-7bf6244dbc00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.081524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7492747b-6d3c-49bf-a9b7-34b692aac93f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_patch_invalid_api_version [0.059975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/inspection_rules/d10a5fb9-a5df-4aaf-b912-d3b4cab0f268 WITH [{'op': 'replace', 'path': '/description', 'value': 'New description'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow inspection rules\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.051367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '64a50c81-dc35-4725-af6b-e89135b7947f', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/64a50c81-dc35-4725-af6b-e89135b7947f Openstack-Request-Id: req-5f03fb82-8f86-4ee3-baa2-a9a7f8ca055a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "64a50c81-dc35-4725-af6b-e89135b7947f", "created_at": "2025-05-19T19:09:21.165198+00:00", "updated_at": null, "candidate_nodes": [], "extra": {"foo": 123}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/64a50c81-dc35-4725-af6b-e89135b7947f", "rel": "self"}, {"href": "http://localhost/allocations/64a50c81-dc35-4725-af6b-e89135b7947f", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/64a50c81-dc35-4725-af6b-e89135b7947f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-711defc2-0168-44eb-94e0-fbba5211c16b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "64a50c81-dc35-4725-af6b-e89135b7947f", "created_at": "2025-05-19T19:09:21.165198+00:00", "updated_at": null, "candidate_nodes": [], "extra": {"foo": 123}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/64a50c81-dc35-4725-af6b-e89135b7947f", "rel": "self"}, {"href": "http://localhost/allocations/64a50c81-dc35-4725-af6b-e89135b7947f", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.136713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/be10cc80-416c-405a-beb2-7759d56fa5ee WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-746a8882-81eb-46b7-b25f-9142a7488860 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "be10cc80-416c-405a-beb2-7759d56fa5ee", "created_at": "2025-05-19T19:09:21.128885+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/be10cc80-416c-405a-beb2-7759d56fa5ee", "rel": "self"}, {"href": "http://localhost/deploy_templates/be10cc80-416c-405a-beb2-7759d56fa5ee", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type [0.068215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT']}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c95c11c6-ab3c-4050-8227-2df4887984bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.049032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e8449df8-32c0-49d8-90e6-a9592714d080', 'owner': None} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-42cc481f-a294-4a92-81c4-dc7061ed31e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_set_sensitive_field [0.127202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '7efcc348-891f-425f-ab05-725daba316c2', 'description': 'an inspection rule', 'sensitive': False, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'set-attribute', 'args': ['/driver', 'idrac'], 'inspection_rule_id': None}], 'conditions': [{'op': 'is-true', 'args': ['{node.auto_discovered}'], 'multiple': 'any', 'inspection_rule_id': None}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/7efcc348-891f-425f-ab05-725daba316c2 Openstack-Request-Id: req-956acf44-8b85-483a-bad0-029348e6853c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7efcc348-891f-425f-ab05-725daba316c2", "created_at": "2025-05-19T19:09:21.209013+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/7efcc348-891f-425f-ab05-725daba316c2", "rel": "self"}, {"href": "http://localhost/inspection/7efcc348-891f-425f-ab05-725daba316c2", "rel": "bookmark"}]} PATCH /v1/inspection_rules/7efcc348-891f-425f-ab05-725daba316c2 WITH [{'op': 'replace', 'path': '/sensitive', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9624213-6f3c-4184-9e86-64f37ad95987 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7efcc348-891f-425f-ab05-725daba316c2", "created_at": "2025-05-19T19:09:21.209013+00:00", "updated_at": "2025-05-19T19:09:21.264544+00:00", "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/7efcc348-891f-425f-ab05-725daba316c2", "rel": "self"}, {"href": "http://localhost/inspection/7efcc348-891f-425f-ab05-725daba316c2", "rel": "bookmark"}]} PATCH /v1/inspection_rules/7efcc348-891f-425f-ab05-725daba316c2 WITH [{'op': 'replace', 'path': '/sensitive', 'value': False}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-083b9389-3334-4682-b602-02b93880657d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'op': 'replace', 'path': '/sensitive', 'value': False}]'. Reason: Inspection rules cannot have the sensitive flag unset.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.106821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/7e0cc709-2e50-43d3-9c6f-fc6f181442de WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3c36fbd0-8394-4ebd-aefe-cb68ff37b9b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id [0.087282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': 'DEVICE_ID_SHOULD_BE_UUID', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ab9eada4-979d-4248-93d6-242b856eeba2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.050654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ddc48311-a1b4-44df-a49f-5bd6abac1be4'} GOT Response: 204 No Content Openstack-Request-Id: req-f1d4afb9-f3d8-405a-a65c-9f0a6cd3812a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.111564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/dce8d1ec-1d16-482c-a547-115e66f751e6 Openstack-Request-Id: req-2d3357a0-7d51-4fca-9638-a31e51178793 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dce8d1ec-1d16-482c-a547-115e66f751e6", "created_at": "2025-05-19T19:09:21.322934+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/dce8d1ec-1d16-482c-a547-115e66f751e6", "rel": "self"}, {"href": "http://localhost/allocations/dce8d1ec-1d16-482c-a547-115e66f751e6", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/dce8d1ec-1d16-482c-a547-115e66f751e6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1631e12-8bee-4a5e-b43c-7ef25de3824f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dce8d1ec-1d16-482c-a547-115e66f751e6", "created_at": "2025-05-19T19:09:21.322934+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/dce8d1ec-1d16-482c-a547-115e66f751e6", "rel": "self"}, {"href": "http://localhost/allocations/dce8d1ec-1d16-482c-a547-115e66f751e6", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address [0.031035s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'INVALID_MAC_ADDRESS', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-09d01331-9a85-43e5-b016-d690f83e21cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.045592s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/3ef7f576-47ab-4ec2-a31a-90ae414a18b1 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dc968ffb-dbf3-4412-841d-d3dc1b2b8f0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.028636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '241a0d5b-fb69-4026-9c80-9f09b37b61ac', 'owner': None} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.040280s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': 'PORT_ID_SHOULD_BE_UUID', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f14cc87e-9cbd-4818-8b1b-1c43d4a704fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.047767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/4b4ce82b-1dfd-41bd-bc11-898b04c420c9 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-90430ff3-de5b-45d6-b6db-dd864829411c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove a non-existent object '1'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status [0.032142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e29cc09c-a7a1-432f-9866-b7408e9bca4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.076627s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': 'd4b38729-5ea3-436a-9da0-534e768facb2'} GOT Response: 204 No Content Openstack-Request-Id: req-de9e2fc2-b69e-43d1-9a09-271d1f502d35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.058572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3270d174-96a7-40c9-b5a5-30b7973c4737', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47a76d32-f485-46c8-8f7a-31a214e49539 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events [0.035809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.unbind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT Response: 204 No Content Openstack-Request-Id: req-fdec9fa7-24da-4242-a7d2-c385e6eb87ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.061038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/7edce333-8d52-4781-9a89-e9704a13e5f8 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ddce82cd-918f-4ad9-9782-54c7bf5407e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.043679s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '81245d80-9481-4f99-8de4-87f7815959b8', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-356051c4-d3f8-431c-9953-61838ef1618d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'FOO_BAR' is not valid under any of the given schemas. Possible root cause: 'FOO_BAR' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property [0.033090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a61a0f1-d026-49ca-b1c9-aad76ac119c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.076230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': '8d274c83-87d4-42ce-ba4d-ceaddd505b31'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5f31fba3-b5e6-4779-9cbd-ed88061881c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_by_uuid [0.050726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/9d065808-865f-4dfc-bf24-660e9b2b793a GOT Response: 204 No Content Openstack-Request-Id: req-d67e9969-9e04-42df-aecd-e9fcaf8d7d30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.067797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c6fed090-c87a-4653-ae43-aeb05e69daf3', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1c577e03-8149-4490-a54c-793faa78bada X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.100772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/edee78e4-9651-41d9-90bb-9752f3778435 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aaf24190-4630-4527-9fb5-afdabb73913f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_invalid_api_version [0.030257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/d69058bb-1aa3-4ae6-ba7f-9b0a3f764907 GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow inspection rules\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.089516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'invalid%id^'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c9dfc6f0-1b10-47a7-86f8-5d6c38a6d507 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for id: invalid%id^\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.050162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f8ee3af-6392-4866-8dc8-6f71089ce3fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-19T19:09:21.599340+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.034854s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': 'e9be4309-e35e-43ca-a581-f9cf9c9ef027'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8d04e505-f45e-4861-b6ae-bbfd09314efb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vif: 'id' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.077071s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': '34870908-e845-4e28-9501-ec1a844a8e15', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/34870908-e845-4e28-9501-ec1a844a8e15 Openstack-Request-Id: req-09396541-fdc2-4d14-a1b9-d6d9d8d82e1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "34870908-e845-4e28-9501-ec1a844a8e15", "created_at": "2025-05-19T19:09:21.616324+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "foo", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/34870908-e845-4e28-9501-ec1a844a8e15", "rel": "self"}, {"href": "http://localhost/allocations/34870908-e845-4e28-9501-ec1a844a8e15", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/34870908-e845-4e28-9501-ec1a844a8e15 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-790667a3-c7e6-460c-a817-679d46703168 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "34870908-e845-4e28-9501-ec1a844a8e15", "created_at": "2025-05-19T19:09:21.616324+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": "foo", "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/34870908-e845-4e28-9501-ec1a844a8e15", "rel": "self"}, {"href": "http://localhost/allocations/34870908-e845-4e28-9501-ec1a844a8e15", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.079182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/13d12283-14e0-4c25-aacf-e843dd6d3099 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fee671b3-b2c0-4cad-85ea-d1d2d63a117a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.080939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-015ad042-2193-48b2-aea2-7a5a2c6c1d69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-19T19:09:21.683014+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.076167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'c50313a2-5938-4dc0-aa00-99892ac2fa9b'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4095afa0-dd02-427c-bb28-30fdb12d94be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.067380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '6a7f37e0-b053-4438-8537-630c70c0c513', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dd209d6b-a43e-4af0-b58b-3425a249bb56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.072248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/6f951bfb-b342-4d60-bd13-e04cc63d2538 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d45c56bf-a51c-42bf-a6fd-d85b23fbfa18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.036479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33e21fef-befc-4d32-a13a-fc35a82aaa05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.035441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/doesntexist/vifs WITH {'id': 'e0baea78-8913-4e88-93f1-e90f210fa5ba'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-25acd385-0896-4ccf-938c-9eb483101009 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.040975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner [0.065269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '573d1f08-7969-4b62-8159-95c88e4170af', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/573d1f08-7969-4b62-8159-95c88e4170af Openstack-Request-Id: req-26ef11bb-86aa-4082-8dbf-7e6a6d15678c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "573d1f08-7969-4b62-8159-95c88e4170af", "created_at": "2025-05-19T19:09:21.763232+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/573d1f08-7969-4b62-8159-95c88e4170af", "rel": "self"}, {"href": "http://localhost/allocations/573d1f08-7969-4b62-8159-95c88e4170af", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/573d1f08-7969-4b62-8159-95c88e4170af WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f155b8c-f9d1-47b9-97ff-8d1f4a690f8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "573d1f08-7969-4b62-8159-95c88e4170af", "created_at": "2025-05-19T19:09:21.763232+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/573d1f08-7969-4b62-8159-95c88e4170af", "rel": "self"}, {"href": "http://localhost/allocations/573d1f08-7969-4b62-8159-95c88e4170af", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.091024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/89b8b353-303b-48c4-839b-5f0c24514c76 WITH [{'path': '/steps', 'op': 'replace', 'value': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}]}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f63eed1e-38d2-4bb2-b621-0be30dc68a17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.075915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '25b10100-f72b-4b7c-82ff-733077391f74', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4d9b29f5-c21b-4e18-bfc1-7beeba0c6473 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.67 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify both port_uuid and portgroup_uuid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.053104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5bf7c4ef-c692-4a52-8c2e-755107ae9b28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-19T19:09:21.812525+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields [0.037121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True?fields=name,read_only WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ad4d9c0c-d299-4ba5-8f1f-160bfdfaa8a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid detail: Unrecognized value 'True?fields=name,read_only', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled [0.088661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e0aa52fe-1436-4127-9b08-62daac0a51c0', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/e0aa52fe-1436-4127-9b08-62daac0a51c0 Openstack-Request-Id: req-4fbe7f28-635e-4246-998f-9cf7bf323a8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e0aa52fe-1436-4127-9b08-62daac0a51c0", "created_at": "2025-05-19T19:09:21.845687+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "123456", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e0aa52fe-1436-4127-9b08-62daac0a51c0", "rel": "self"}, {"href": "http://localhost/allocations/e0aa52fe-1436-4127-9b08-62daac0a51c0", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e0aa52fe-1436-4127-9b08-62daac0a51c0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dec211c7-cd56-4759-8235-d5a12f41a9e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e0aa52fe-1436-4127-9b08-62daac0a51c0", "created_at": "2025-05-19T19:09:21.845687+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "123456", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e0aa52fe-1436-4127-9b08-62daac0a51c0", "rel": "self"}, {"href": "http://localhost/allocations/e0aa52fe-1436-4127-9b08-62daac0a51c0", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.094689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/7df568c9-e490-4666-88b2-db4cd3b31d64 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c239a0b9-a56b-4e5a-b448-ad0157f7efb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields [0.049565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?fields=name,read_only WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f29bba8-f2dd-4ff4-8430-55a6dab68a35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-19T19:09:21.905788+00:00", "updated_at": null, "name": "virtualization", "read_only": false, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed [0.063383s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0dc7425e-e2d8-4f4b-bef5-421da8c08e35', 'owner': '12345'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c9bf5928-1624-4450-959e-a55ae197b040 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version [0.039291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?fields=name,read_only WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a8313d35-45f1-4107-800f-f5676c5c3fdb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?fields=['name', 'read_only'] received.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.036066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a9f5f0e-491c-4551-ab7b-ddbf2af8fc4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"virtualization": {"created_at": "2025-05-19T19:09:21.987612+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.110191s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/201d963d-2a8c-4cf3-8547-cf1c6531fffe WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e050533e-dc38-494b-b8c1-455afd987099 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.088353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '98f17a87-8f59-4ce5-9c03-39bb7a9a77b8', 'owner': '12345'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-23612bfe-6482-487e-8b15-843043dbe1fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with an owner Project ID value 12345 not matching the requester Project ID 0987. Policy baremetal:allocation:create_restricted is required for this capability.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.051741s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-750b2708-e024-4eda-a93b-2fb2764279de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.034708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.084927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/593b9682-4a91-4b8f-9c86-63b4fbe60c4d WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70c63545-78ec-4a52-a55a-d07372e91ec0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.062008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': 'd2c2b98c-0143-47bf-99e0-10d2e84c0b46', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ee56ab31-909e-48ad-bfed-d28bdca7ba8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.288873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'b3bd4d9b-a7eb-4b95-a661-7e1dddde37b5', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content Openstack-Request-Id: req-36039090-4374-48fb-8cc5-51d4de88b50e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry [0.040527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6eaa0e7-c6fb-41d5-9f32-b5fe632cc04c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"virtualization": {"created_at": "2025-05-19T19:09:22.119535+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.038061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/910aac39-0d89-4ec9-892a-882f0ec51f72 GOT Response: 204 No Content Openstack-Request-Id: req-14e308b5-bc13-4bfe-bfcc-ae75af11c5cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.075707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '41bb50de-748c-4473-82d6-7beb89dd0a1f', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/41bb50de-748c-4473-82d6-7beb89dd0a1f Openstack-Request-Id: req-9ef8780e-5cda-4eaa-a8a1-f5596a0c33f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "41bb50de-748c-4473-82d6-7beb89dd0a1f", "created_at": "2025-05-19T19:09:22.154771+00:00", "updated_at": null, "candidate_nodes": [], "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/41bb50de-748c-4473-82d6-7beb89dd0a1f", "rel": "self"}, {"href": "http://localhost/allocations/41bb50de-748c-4473-82d6-7beb89dd0a1f", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/41bb50de-748c-4473-82d6-7beb89dd0a1f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a983db4-e14f-43eb-8c7b-af5fb83d60b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "41bb50de-748c-4473-82d6-7beb89dd0a1f", "created_at": "2025-05-19T19:09:22.154771+00:00", "updated_at": null, "candidate_nodes": [], "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/41bb50de-748c-4473-82d6-7beb89dd0a1f", "rel": "self"}, {"href": "http://localhost/allocations/41bb50de-748c-4473-82d6-7beb89dd0a1f", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_firmware_components [0.045149s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/firmware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e535105-4580-4a4b-bd6e-fb66694ea26d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {"firmware": [{"created_at": "2025-05-19T19:09:22.158979+00:00", "updated_at": null, "component": "BIOS", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}, {"created_at": "2025-05-19T19:09:22.158091+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.037001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/vifs/8b3a4d48-e012-4f68-bbaa-7879e6e8c235 GOT Response: 204 No Content Openstack-Request-Id: req-a3721e12-e62a-4f21-9241-c5f445aaf803 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.080681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/385c3e5e-825e-4f1d-ae59-a9c07662becf WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7cfd7f93-6d5d-4b75-a757-935da0137781 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.032883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/firmware WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.093135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['node-1', '95994b85-1af4-47e3-a88c-24ebfc037aae'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b6a96f4b-0d19-44aa-a612-6c21a99c2458', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/b6a96f4b-0d19-44aa-a612-6c21a99c2458 Openstack-Request-Id: req-64d349f8-e0c7-4066-a484-45ff9d25b19f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b6a96f4b-0d19-44aa-a612-6c21a99c2458", "created_at": "2025-05-19T19:09:22.259960+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "95994b85-1af4-47e3-a88c-24ebfc037aae"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b6a96f4b-0d19-44aa-a612-6c21a99c2458", "rel": "self"}, {"href": "http://localhost/allocations/b6a96f4b-0d19-44aa-a612-6c21a99c2458", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/b6a96f4b-0d19-44aa-a612-6c21a99c2458 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-021830f9-42ac-4ba1-afbc-8c415380603d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b6a96f4b-0d19-44aa-a612-6c21a99c2458", "created_at": "2025-05-19T19:09:22.259960+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "95994b85-1af4-47e3-a88c-24ebfc037aae"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b6a96f4b-0d19-44aa-a612-6c21a99c2458", "rel": "self"}, {"href": "http://localhost/allocations/b6a96f4b-0d19-44aa-a612-6c21a99c2458", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.093131s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e3ba0fa0-25b9-493b-a342-81ba9efd12f6 WITH [{'path': '/steps/0', 'op': 'replace', 'value': {'interface': 'foo', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f97881d-4780-47db-a45f-2f841f1f9264 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.108880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/728e8100-8b53-4921-aa8c-4a8a6d3839e1 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6d9415d7-665d-412c-bcaa-5250bc3b04c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.115424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': 'd4f18277-212e-4fc3-805b-caff8494b05b', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'parent_node': 'din'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/d4f18277-212e-4fc3-805b-caff8494b05b Openstack-Request-Id: req-a78fdd3c-fc44-40bd-a8d4-099953499e3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "d4f18277-212e-4fc3-805b-caff8494b05b", "created_at": "2025-05-19T19:09:22.310605+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/d4f18277-212e-4fc3-805b-caff8494b05b", "rel": "self"}, {"href": "http://localhost/nodes/d4f18277-212e-4fc3-805b-caff8494b05b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/ports", "rel": "self"}, {"href": "http://localhost/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/states", "rel": "self"}, {"href": "http://localhost/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/volume", "rel": "self"}, {"href": "http://localhost/nodes/d4f18277-212e-4fc3-805b-caff8494b05b/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.121440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/1fa6d942-16a1-4382-9fd1-57c7127b253b WITH [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'priority': 11}, 'op': 'replace'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'priority': 11}, 'op': 'replace'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'priority': 11}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f03c514a-9357-4c1e-9e44-a4ba8928e327 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1fa6d942-16a1-4382-9fd1-57c7127b253b", "created_at": "2025-05-19T19:09:22.335866+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1fa6d942-16a1-4382-9fd1-57c7127b253b", "rel": "self"}, {"href": "http://localhost/deploy_templates/1fa6d942-16a1-4382-9fd1-57c7127b253b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 11}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.127989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/doesntexist/vifs/eb6e1bc4-6748-4a4c-8496-1efc482c9b98 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e38803bc-6901-46ee-9dcd-41b8d24cce70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node [0.127779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': 'ce4fa687-df2f-4f41-b373-cce5400c78f4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'parent_node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4 Openstack-Request-Id: req-0587a1fc-e5d1-4d9f-bae2-f97c3da0df73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "ce4fa687-df2f-4f41-b373-cce5400c78f4", "created_at": "2025-05-19T19:09:22.428467+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/states", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/volume", "rel": "bookmark"}]} GET /v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff4e8a1f-6871-42dc-bdba-f2bc26f2e9be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "ce4fa687-df2f-4f41-b373-cce5400c78f4", "created_at": "2025-05-19T19:09:22.428467+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_ step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/states", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce4fa687-df2f-4f41-b373-cce5400c78f4/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.104404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/5c70a096-df66-4c07-aad4-06cb516af97b WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-cf88b97f-81db-47c2-aa24-e485a163057a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID 5c70a096-df66-4c07-aad4-06cb516af97b already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.067234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': 'c975ca5a-ebee-4194-924c-5a9526d6e1d0', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'parent_node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3b8aa656-53ce-43bd-bb05-8c78b958e400 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.157684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c654635-2ae9-40a5-8e08-e2315d8febbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"vifs": []} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.085527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/7faf68b9-996e-4ba4-a281-43c0b22e513e WITH [{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8cccf5b2-7c4a-41d1-adb4-02de10183d4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't replace outside of list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.050976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard [0.112306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/shard', 'value': 'shard1', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e528b5f-6126-47ef-af30-741fd2b68d4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:22.557677+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.074028s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/229bf727-303a-48ed-8642-c00c66fb148a WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d644b73-6c93-4dad-9b33-c25b0aae91f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory [0.037178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/inventory WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de8a07cc-2ecc-4f0b-8140-20fd623753a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.81 {"inventory": {"cpu": {"count": 1, "model_name": "qemu64", "architecture": "x86_64"}}, "plugin_data": {"disks": [{"name": "/dev/vda"}]}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.041129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/shard', 'value': 'shard1', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-286a8363-9d37-4aa5-a33c-ae0aeadec83b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.413053s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b4b1dac4-8808-4fed-8947-fbd325f6fdd1', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/b4b1dac4-8808-4fed-8947-fbd325f6fdd1 Openstack-Request-Id: req-5ea6b122-b444-4fcb-a11c-c8dafe7fe5c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b4b1dac4-8808-4fed-8947-fbd325f6fdd1", "created_at": "2025-05-19T19:09:22.683928+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b4b1dac4-8808-4fed-8947-fbd325f6fdd1", "rel": "self"}, {"href": "http://localhost/allocations/b4b1dac4-8808-4fed-8947-fbd325f6fdd1", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory_no_inventory [0.057435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-32056113-840b-4850-bd07-5ee47ee01c4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.81 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node inventory record for node 1 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.092209s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f7ef8677-91ae-4290-a8a7-7ddbd3dd05fe WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d93855ad-f9dd-4d68-aaf6-678c2d233a4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f7ef8677-91ae-4290-a8a7-7ddbd3dd05fe", "created_at": "2025-05-19T19:09:22.703303+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f7ef8677-91ae-4290-a8a7-7ddbd3dd05fe", "rel": "self"}, {"href": "http://localhost/deploy_templates/f7ef8677-91ae-4290-a8a7-7ddbd3dd05fe", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_old_version [0.055974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.080371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': 'afb15b9a-6863-40f2-ad36-86c16a9a9600', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/afb15b9a-6863-40f2-ad36-86c16a9a9600 Openstack-Request-Id: req-f5c0ec00-312d-4ffe-8bc6-3cc3ed140b77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "afb15b9a-6863-40f2-ad36-86c16a9a9600", "created_at": "2025-05-19T19:09:22.759325+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "links": [{"href": "http://localhost/v1/allocations/afb15b9a-6863-40f2-ad36-86c16a9a9600", "rel": "self"}, {"href": "http://localhost/allocations/afb15b9a-6863-40f2-ad36-86c16a9a9600", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/afb15b9a-6863-40f2-ad36-86c16a9a9600 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbbe00d1-ad4b-4ec8-a7b9-f57259c68e04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "afb15b9a-6863-40f2-ad36-86c16a9a9600", "created_at": "2025-05-19T19:09:22.759325+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "links": [{"href": "http://localhost/v1/allocations/afb15b9a-6863-40f2-ad36-86c16a9a9600", "rel": "self"}, {"href": "http://localhost/allocations/afb15b9a-6863-40f2-ad36-86c16a9a9600", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.080743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/cc283c2c-5af6-4f5b-9788-8085acab22fa WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach [0.062078s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'https://image', 'image_download_source': 'http'} GOT Response: 204 No Content Openstack-Request-Id: req-350bbc8b-28bb-4898-aaf5-15f4c81539b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.083349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a6854362-c5a1-4fd3-9136-0661a590fc0f', 'owner': None} GOT Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_device_type [0.045184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cat', 'image_url': 'http://image'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-af78ee7f-c98b-4c20-acb5-9e67e47f9fc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'cat' is not one of ['disk', 'cdrom', 'floppy']\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.029942s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'abcd'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d86a0e3d-1537-43f9-af0c-095ac70074d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unsupported or missing URL scheme: \", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.087669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/CUSTOM_DT1 WITH [{'path': '/steps', 'value': [{'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}], 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ad44c92-8ee4-437c-be0d-8b6f962a6e3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "71bb2d20-4ff7-4911-9d15-f79f26e8bfc1", "created_at": "2025-05-19T19:09:22.890242+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/71bb2d20-4ff7-4911-9d15-f79f26e8bfc1", "rel": "self"}, {"href": "http://localhost/deploy_templates/71bb2d20-4ff7-4911-9d15-f79f26e8bfc1", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.071235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3cfb816f-8536-43f9-b521-aa92acbd8a6c', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f450590e-b1b1-453d-bc78-af3b5b17ba1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_device_type [0.039860s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'image_url': 'http://image'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-99e5a72f-724c-4a25-ab9d-7d13f80200b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'device_type' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanhold [0.286542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'abort'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-4d10580c-91db-44e8-96bc-341854f36917 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.052125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_image_url [0.059669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d875fe4f-d566-4b81-816e-9ae619aa41fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'image_url' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.082972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4e2b3ac3-2ecf-47d6-a41e-41796d29753f', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/4e2b3ac3-2ecf-47d6-a41e-41796d29753f Openstack-Request-Id: req-524a6b88-e9e0-45f2-997e-6e70c2f9f95c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "4e2b3ac3-2ecf-47d6-a41e-41796d29753f", "created_at": "2025-05-19T19:09:23.000690+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/4e2b3ac3-2ecf-47d6-a41e-41796d29753f", "rel": "self"}, {"href": "http://localhost/allocations/4e2b3ac3-2ecf-47d6-a41e-41796d29753f", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/4e2b3ac3-2ecf-47d6-a41e-41796d29753f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ef3ccea-874e-4f59-aaf0-a3a3e2913135 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "4e2b3ac3-2ecf-47d6-a41e-41796d29753f", "created_at": "2025-05-19T19:09:23.000690+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/4e2b3ac3-2ecf-47d6-a41e-41796d29753f", "rel": "self"}, {"href": "http://localhost/allocations/4e2b3ac3-2ecf-47d6-a41e-41796d29753f", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.055629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'abort'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-77672ad9-b6d9-49f8-a0b9-24719482ec9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_required_only [0.042291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'http://image'} GOT Response: 204 No Content Openstack-Request-Id: req-700681f6-c83d-4477-8613-5825dc7542d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.099618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/CUSTOM_DT1.json WITH [{'path': '/steps/0/interface', 'value': 'bios', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-340ff3d4-3289-4394-bcda-3f4b64843df3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "db2be369-9d82-4692-aff1-4ea427d94768", "created_at": "2025-05-19T19:09:23.041379+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/db2be369-9d82-4692-aff1-4ea427d94768", "rel": "self"}, {"href": "http://localhost/deploy_templates/db2be369-9d82-4692-aff1-4ea427d94768", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden [0.063042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f0d6f030-08f3-4b54-88bb-9f2b9da57723', 'owner': None} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-493f7b06-2f84-4ff6-8886-e6855189838e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_deployhold [0.065746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'abort'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-f955d073-0d2f-4e97-9c5a-76fb56187d9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_wrong_version [0.036231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'http://image'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json_not_found [0.057642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/CUSTOM_DT1.json WITH [{'path': '/steps/0/interface', 'value': 'bios', 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ff68eb98-a16a-444b-83d6-a8b45ab5d98a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.057503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'abort'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5d5b93ae-7d92-41da-9fc2-0d878d0ce197 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.056669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content Openstack-Request-Id: req-9790c932-0eda-4576-9f20-bc5348b2e601 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal [0.072073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f358e95f-fc81-417b-aff5-f8f5b8471660', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f358e95f-fc81-417b-aff5-f8f5b8471660 Openstack-Request-Id: req-2c017d87-d15d-48ad-9492-b9bbdeed4ace X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "f358e95f-fc81-417b-aff5-f8f5b8471660", "created_at": "2025-05-19T19:09:23.145131+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/f358e95f-fc81-417b-aff5-f8f5b8471660", "rel": "self"}, {"href": "http://localhost/allocations/f358e95f-fc81-417b-aff5-f8f5b8471660", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/f358e95f-fc81-417b-aff5-f8f5b8471660 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-854f2bfc-d32b-47be-a044-c6af36ac259d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "f358e95f-fc81-417b-aff5-f8f5b8471660", "created_at": "2025-05-19T19:09:23.145131+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/f358e95f-fc81-417b-aff5-f8f5b8471660", "rel": "self"}, {"href": "http://localhost/allocations/f358e95f-fc81-417b-aff5-f8f5b8471660", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.050262s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'adopt'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8d6cb64f-83b2-4280-ae0e-c239cd65b46c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.047824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom&device_types=disk GOT Response: 204 No Content Openstack-Request-Id: req-7d42ac3c-6496-43b8-8861-9fb00d2dbc03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.093481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/3f98e542-e9a0-4e15-a60f-44d61fdc2a8b WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-820cb8e8-57cd-4961-bdc3-ded18baed0f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'aa:bb_cc' is not valid under any of the given schemas. Possible root cause: 'aa:bb_cc' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.034355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content Openstack-Request-Id: req-f266503c-697e-434c-a29e-bd771dd55ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version [0.077644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'eece2e3c-2e55-459c-af3c-ee7e11289113'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/eece2e3c-2e55-459c-af3c-ee7e11289113 Openstack-Request-Id: req-528374b8-2e14-4fcb-8f15-50ea15d8ae41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "eece2e3c-2e55-459c-af3c-ee7e11289113", "created_at": "2025-05-19T19:09:23.224063+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/eece2e3c-2e55-459c-af3c-ee7e11289113", "rel": "self"}, {"href": "http://localhost/allocations/eece2e3c-2e55-459c-af3c-ee7e11289113", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/eece2e3c-2e55-459c-af3c-ee7e11289113 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf0e6f68-2b38-4cd4-8c9a-413fb1b6fad5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "eece2e3c-2e55-459c-af3c-ee7e11289113", "created_at": "2025-05-19T19:09:23.224063+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/eece2e3c-2e55-459c-af3c-ee7e11289113", "rel": "self"}, {"href": "http://localhost/allocations/eece2e3c-2e55-459c-af3c-ee7e11289113", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.062278s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'adopt'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-35b367ee-4635-4ec4-b532-07b85a81069e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.055239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content Openstack-Request-Id: req-ea2f5831-bdb0-4f97-9bec-02d27c1c91f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner [0.059392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '6e8a5b4d-dd0e-4434-8eaf-b677ddd1908d', 'owner': '54321'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-12f7d09f-da58-4c08-bf96-841983ad5fa7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.061665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'adopt'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0fa75766-0691-4f42-ae30-a90338a9768e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.045013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'adopt'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c19dd951-329d-43b0-99fa-720fd1a670ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_device_types [0.073133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom,cat GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2893537f-41b0-46b6-9c34-779adc862e0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid device type(s) cat (valid are disk, cdrom, floppy)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner [0.087940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6 Openstack-Request-Id: req-f59d911d-656e-4c33-b794-cc9c898b67cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6", "created_at": "2025-05-19T19:09:23.378566+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6", "rel": "self"}, {"href": "http://localhost/allocations/fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-458e3051-1279-4694-964b-ba134956ba80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6", "created_at": "2025-05-19T19:09:23.378566+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "12345", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6", "rel": "self"}, {"href": "http://localhost/allocations/fd5a56dc-eadd-4f35-bea9-a3e39d8e58b6", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_version [0.072491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.056847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95df9b65-3926-4e34-8ee4-e78e3bddc5da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "f77425ba-621c-4f76-8bbb-74a10d1b7eff", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/f77425ba-621c-4f76-8bbb-74a10d1b7eff", "rel": "self"}, {"href": "http://localhost/conductors/f77425ba-621c-4f76-8bbb-74a10d1b7eff", "rel": "bookmark"}], "alive": true}, {"hostname": "dc705775-4be5-4d17-99c4-517c2ddb5a51", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/dc705775-4be5-4d17-99c4-517c2ddb5a51", "rel": "self"}, {"href": "http://localhost/conductors/dc705775-4be5-4d17-99c4-517c2ddb5a51", "rel": "bookmark"}], "alive": true}, {"hostname": "7f7e7b3e-8dc4-42be-8427-ab5b81c027a3", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/7f7e7b3e-8dc4-42be-8427-ab5b81c027a3", "rel": "self"}, {"href": "http://localhost/conductors/7f7e7b3e-8dc4-42be-8427-ab5b81c027a3", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=7f7e7b3e-8dc4-42be-8427-ab5b81c027a3"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.090647s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a01ef334-538d-41cd-b6e7-aabc2249fc74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-03902771-679f-4e37-a705-74d47b57fa8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51c4db60-db15-4cf7-bcbd-b8fae7d275ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.059805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa3cb10f-f9bf-4090-8e93-0b4f4c0fe881 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6de5190-1ab9-45ae-a5f2-9e133ade0599 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6c9336e4-88d0-43b0-a95d-a0507f172ff7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.071370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ee171a3-cb47-415a-83ec-efab4a699f0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "92f7fae0-ca72-4e93-a969-f4f9d6f0f700", "links": [{"href": "http://localhost/v1/conductors/92f7fae0-ca72-4e93-a969-f4f9d6f0f700", "rel": "self"}, {"href": "http://localhost/conductors/92f7fae0-ca72-4e93-a969-f4f9d6f0f700", "rel": "bookmark"}], "alive": true}, {"hostname": "046ed639-7433-4c6e-a4ab-33d363e90dd6", "links": [{"href": "http://localhost/v1/conductors/046ed639-7433-4c6e-a4ab-33d363e90dd6", "rel": "self"}, {"href": "http://localhost/conductors/046ed639-7433-4c6e-a4ab-33d363e90dd6", "rel": "bookmark"}], "alive": true}, {"hostname": "095e4168-49c9-4677-b842-ce4b9ae3fcb4", "links": [{"href": "http://localhost/v1/conductors/095e4168-49c9-4677-b842-ce4b9ae3fcb4", "rel": "self"}, {"href": "http://localhost/conductors/095e4168-49c9-4677-b842-ce4b9ae3fcb4", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=095e4168-49c9-4677-b842-ce4b9ae3fcb4"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get [0.088892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-736a4b14-cc36-4a90-9ca8-5a4ee4255c5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 [{"media_types": ["CD", "DVD"], "inserted": "false", "image": ""}, {"media_types": ["Floppy", "USBStick"], "inserted": "false", "image": ""}] {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.350301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/ca7e9d83-5f88-4620-8f65-e1b96fb61131 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-858bb080-aadc-4570-96bc-13042b8161b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca7e9d83-5f88-4620-8f65-e1b96fb61131", "created_at": "2025-05-19T19:09:23.280036+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ca7e9d83-5f88-4620-8f65-e1b96fb61131", "rel": "self"}, {"href": "http://localhost/deploy_templates/ca7e9d83-5f88-4620-8f65-e1b96fb61131", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get_wrong_version [0.048828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-750be844-3dcc-466a-8f11-c8a25b3d6c22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.92 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.094173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f15425d2-4e8a-48d7-b03f-0aac2ec670ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a40a6358-1537-4561-aca0-b1caef4ab7e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f2a9220-ab31-4a3f-a91e-a2db7e07b530 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.108725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-358c1397-270a-418c-a635-7296615cb56b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "87b69b43-9030-440c-97fd-47576e6c7f23", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/87b69b43-9030-440c-97fd-47576e6c7f23", "rel": "self"}, {"href": "http://localhost/conductors/87b69b43-9030-440c-97fd-47576e6c7f23", "rel": "bookmark"}], "alive": true}, {"hostname": "48638531-a05c-4d3e-af1b-ba0edfd8221c", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/48638531-a05c-4d3e-af1b-ba0edfd8221c", "rel": "self"}, {"href": "http://localhost/conductors/48638531-a05c-4d3e-af1b-ba0edfd8221c", "rel": "bookmark"}], "alive": true}, {"hostname": "d0bc71bf-b42f-4978-9e8b-d1ffb5247f12", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/d0bc71bf-b42f-4978-9e8b-d1ffb5247f12", "rel": "self"}, {"href": "http://localhost/conductors/d0bc71bf-b42f-4978-9e8b-d1ffb5247f12", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=d0bc71bf-b42f-4978-9e8b-d1ffb5247f12"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.059429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/710e5ca4-93e5-4490-8f6c-9f5cf53372d5 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02ea1d5b-01f1-42e0-96ec-b99076b7b2d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "710e5ca4-93e5-4490-8f6c-9f5cf53372d5", "created_at": "2025-05-19T19:09:23.621573+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/710e5ca4-93e5-4490-8f6c-9f5cf53372d5", "rel": "self"}, {"href": "http://localhost/deploy_templates/710e5ca4-93e5-4490-8f6c-9f5cf53372d5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.063233s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.032584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e04ea98d-d7af-4d39-acac-dd420df9fdbe WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b112f3cf-dacd-4084-9590-136366b91cb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template e04ea98d-d7af-4d39-acac-dd420df9fdbe could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.050040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9eb5f4d6-a6d5-4394-b830-db0877a72b21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.046257s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.035807s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a514c19-d2cd-419d-990c-e16898d5335f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}, {"hostname": "stein.rocks", "links": [{"href": "http://localhost/v1/conductors/stein.rocks", "rel": "self"}, {"href": "http://localhost/conductors/stein.rocks", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver [0.093908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'bios'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-58b486e7-763b-480d-8b41-c8b6cf0656f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.053328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb5fb58d-d20a-41d9-b850-6e5320a87a8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.043153s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks?fields=hostname,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e61f41f-e608-4156-9fcc-1f251de2f60c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.043024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cbe3279-a49f-4465-9cac-9eca1d05c6ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.106350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d1d9637d-4507-40a2-8d22-2b043d2e425f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.033598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-hardware-type/vendor_passthru/do_test WITH {'test_key': 'test_value'} GOT Response: 202 Accepted Openstack-Request-Id: req-41c595b4-0570-49dd-ba17-1380665dbfe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.054773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9164b836-b85a-48e4-b26a-acae67072fc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:23.810125+00:00", "updated_at": "2025-05-19T19:09:23.809936+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.113509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'bios'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-3c775d7d-254d-4160-9a95-15762daff3e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.051186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-c5431857-69aa-4749-bacd-934cdec0b45c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_old_heartbeat [0.059213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9509f97e-330a-4124-aa2b-5c88dc45e79f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2000-01-01T00:00:00+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request [0.054815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'unsupported-efi'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d831c4b3-f7e0-4249-b9d9-05427cc5f539 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid boot mode unsupported-efi requested for node. Allowed boot modes are: bios, uefi\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.071164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-hardware-type/vendor_passthru/do_test WITH {'test_key': 'test_value'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e936f8c-7df8-4455-81c5-9dd09a15e9a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_unregistered [0.067735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84392326-3dca-4dd8-a5d8-06bf9b1a52e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:23.937013+00:00", "updated_at": "2025-05-19T19:09:23.945417+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.068241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3558bd79-fe43-4bc2-ae5a-173fe79c3214 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.063794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10ff96af-9935-46ff-99d2-664a2bc4d0bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.119671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type/vendor_passthru/do_test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a623aaa9-0f3e-4e34-a136-e8d4c27173d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.111453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0ac3348e-7bc0-4f65-95e1-afe8b405a17a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.282366s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fa82517-cc74-42f6-afb2-7d4899d926d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:23.879379+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.048548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-hardware-type/vendor_passthru WITH {'test_key': 'test_value'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7211eb95-c69a-4cae-b1bd-977f1bb84961 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.119623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3a81a3ee-e7c8-41c9-855a-5b28417fa82a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.062210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type/vendor_passthru/methods WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4d2d1bf-5f7c-445f-8b9e-6ffbca553d84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} GET /v1/drivers/fake-hardware-type/vendor_passthru/methods WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05f6b06e-443d-4bea-b8a6-8aac7d4641e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.110127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-c748713e-9db4-4e57-a27f-c427b3f64efc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.043174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-hardware-type/vendor_passthru/do_test WITH {'test_key': 'test_value'} GOT Response: 202 Accepted Openstack-Request-Id: req-124b6ea0-bcd3-4f81-a148-22fd93fd6305 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.043667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e95d9b36-4150-446d-b3c9-ca8eb60284a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.092719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0040866-04bc-4f87-8a88-1ed4ffd957e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:24.224447+00:00", "updated_at": "2025-05-19T19:09:24.224257+00:00", "hostname": "[::1]:8090", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/[::1]:8090", "rel": "self"}, {"href": "http://localhost/conductors/[::1]:8090", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.040407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-hardware-type/vendor_passthru/do_test WITH {'test_key': 'test_value'} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6e2808a-5be0-4a0e-ad93-da09d14de4ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"return_key": "return_value"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.051039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}], 'disable_ramdisk': True} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-cf980ff5-f729-402e-a673-4d8792150a12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.70 {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.050242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f3789c5-9c27-4473-947f-3d8e747b35fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d736ab5-d034-4990-b179-dfe2e83546cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aff45212-f9e5-4732-84a1-f4d87d3f5ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc35917e-d1c2-4c19-89a7-8557e6de6378 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7c50e17-6294-4be2-bd4d-a9aab6110245 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.050232s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}], 'disable_ramdisk': True} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d25c7bec-212f-477c-b2be-ede52e8aadc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.69 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"disable_ramdisk is not acceptable in this API version\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields [0.039398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-546aa74e-381c-428b-a155-9d2ccf0784ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.110991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95fbbbac-1e6f-4e5f-a982-c873d9508628 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:24.329905+00:00", "updated_at": "2025-05-19T19:09:24.329719+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33e15adc-a259-42c5-aa10-bc9710d9dfda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:24.329905+00:00", "updated_at": "2025-05-19T19:09:24.329719+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} GET /conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ededd4a6-4d8f-4edd-a182-9c46882d7400 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:24.329905+00:00", "updated_at": "2025-05-19T19:09:24.329719+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.035946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e385fd3-b1ce-4242-a877-449b6a5e047d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.284305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-872e5689-570c-466a-bcf9-4882225ac3e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:24.189903+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.069906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'clean'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bd0878b3-e836-4c45-a0b8-3ba5e91b32e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.039436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=true&fields=name,hosts WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9dff523f-1b1e-4456-bb9b-bccdf5525e15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.084589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae0f0f9b-2554-44cc-a0f3-fd26414ba515 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:24.415198+00:00", "updated_at": "2025-05-19T19:09:24.412093+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://foo/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://foo/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-502ff7f2-fa2f-4722-80ed-0ee54adf36df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:24.415198+00:00", "updated_at": "2025-05-19T19:09:24.412093+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://foo/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://foo/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} GET /conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55674030-8344-4228-9437-1ca9e5e7525f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:09:24.415198+00:00", "updated_at": "2025-05-19T19:09:24.412093+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://foo/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://foo/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.041598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-94cbe6eb-9464-4d4b-bef3-df6d3a4c3744 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks [0.068481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'clean', 'runbook': 'CUSTOM_1'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-98e17e19-0b92-4d9b-8c76-0c1eca98d452 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.029317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9d9a017a-6103-460a-8f4b-3ac3a78f15fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.072205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10d58225-12b3-449c-8000-f4493bb8a813 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "why care", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why care", "rel": "self"}, {"href": "http://localhost/conductors/why care", "rel": "bookmark"}], "alive": true}, {"hostname": "why not", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why not", "rel": "self"}, {"href": "http://localhost/conductors/why not", "rel": "bookmark"}], "alive": true}]} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.044729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-75981de8-7379-407c-b64e-af6bd3c5dc21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks_unapproved [0.091254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'clean', 'runbook': 'CUSTOM_1'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9bf20bda-32a7-4552-9834-3c78b35238cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.045625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8868cb07-bb51-4a53-8dff-e3b6fb851593 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.203140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d92b22f0-d00b-446a-a5aa-9628d4048705 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:24.443157+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.073061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e820f27b-7134-434e-8650-16ac268c18c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"created_at": "2025-05-19T19:09:24.569355+00:00", "updated_at": "2025-05-19T19:09:24.569155+00:00", "hostname": "why care", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/why care", "rel": "self"}, {"href": "http://localhost/conductors/why care", "rel": "bookmark"}], "alive": true}, {"created_at": "2025-05-19T19:09:24.570378+00:00", "updated_at": "2025-05-19T19:09:24.570236+00:00", "hostname": "why not", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/why not", "rel": "self"}, {"href": "http://localhost/conductors/why not", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.039356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-54453c59-e706-4303-93d7-83a2a2b194f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.027522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-99393a24-a0bc-40ba-8f01-f7a03f4690f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.034509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dcdd2085-0ee8-46db-a37a-5e4f0cf205e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "774cede7-d144-4032-a15e-20408d7a68b0", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/774cede7-d144-4032-a15e-20408d7a68b0", "rel": "self"}, {"href": "http://localhost/conductors/774cede7-d144-4032-a15e-20408d7a68b0", "rel": "bookmark"}], "alive": true}, {"hostname": "bc0d6c36-4498-4bc5-86ca-18461e4ba2ae", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/bc0d6c36-4498-4bc5-86ca-18461e4ba2ae", "rel": "self"}, {"href": "http://localhost/conductors/bc0d6c36-4498-4bc5-86ca-18461e4ba2ae", "rel": "bookmark"}], "alive": true}, {"hostname": "c2bdef6d-9f76-4bdc-b8d4-fc39bc472957", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/c2bdef6d-9f76-4bdc-b8d4-fc39bc472957", "rel": "self"}, {"href": "http://localhost/conductors/c2bdef6d-9f76-4bdc-b8d4-fc39bc472957", "rel": "bookmark"}], "alive": true}, {"hostname": "e3fe9bdc-4ba7-4183-a53f-be4c49225d9d", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e3fe9bdc-4ba7-4183-a53f-be4c49225d9d", "rel": "self"}, {"href": "http://localhost/conductors/e3fe9bdc-4ba7-4183-a53f-be4c49225d9d", "rel": "bookmark"}], "alive": true}, {"hostname": "e64facbf-de2a-4820-ad3a-effd2ce0282d", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e64facbf-de2a-4820-ad3a-effd2ce0282d", "rel": "self"}, {"href": "http://localhost/conductors/e64facbf-de2a-4820-ad3a-effd2ce0282d", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.053010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bd58328c-61c9-4d0a-a370-ad9d419fc217 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.031424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3d5bf77b-cad0-4a1b-9fc1-b3e6faa32b86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/conductors?sort_key=drivers WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb99a19e-8e5c-4227-9579-9b3100f6d6ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.119720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0821a65c-d6ee-4300-b572-56300d4e4545 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.049849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-611cd05c-28d9-4bfd-b20a-2c65f1345afe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.129926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b7400fa-29a2-4557-972b-865d3f52956a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_boot_interface": null, "enabled_boot_interfaces": []} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b50cb38-cd00-491c-9e04-5e7daba77819 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-434dcf2f-1222-4965-acf8-e0a96c4fcbe6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.046466s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.035478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.081150s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'abort'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0c2b64f9-75f3-4e63-a279-040c2c011a34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.114436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1b75ba3b-5e39-446e-b698-487ed0b153cf WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-1a108ddc-11e6-41e7-9539-e8ad7187c923 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1b75ba3b-5e39-446e-b698-487ed0b153cf can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.102981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba9d8595-bbfd-47fa-89dc-1bef51a32a3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f71814fb-d488-4e85-8c14-cc121a8c3fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-338188ab-e702-40f0-8448-c6258d2e9dc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.063181s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.071193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'abort'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2eb68b67-cdad-4c84-b5b0-a8c6413207f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.047071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.074196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ef5b1ce-2e47-4eb8-a93f-75e9cda4adc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"drivers": []} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.022788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e234b037-abe9-4746-8a64-74f195960497 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.022759s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3d035064-a893-47cb-8f7e-f8220f22e1d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.065545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic [0.047340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc4df83f-2e69-40c3-95fd-609338e210c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.059621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.040144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b33fbb65-3fc3-4eab-8340-573d81404afb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic"}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.229739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b99bc470-34d7-4243-bb02-1c78012c8407 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07de8f1c-9e7f-45ce-ba61-a12e60f14c5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b99bc470-34d7-4243-bb02-1c78012c8407", "created_at": "2025-05-19T19:09:24.937819+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "deploy failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "active", "links": [{"href": "http://localhost/v1/nodes/b99bc470-34d7-4243-bb02-1c78012c8407", "rel": "self"}, {"href": "http://localhost/nodes/b99bc470-34d7-4243-bb02-1c78012c8407", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b99bc470-34d7-4243-bb02-1c78012c8407/ports", "rel": "self"}, {"href": "http://localhost/nodes/b99bc470-34d7-4243-bb02-1c78012c8407/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.064046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.058369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09ee4307-3d81-4fab-81d0-ce977893f41a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic"}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic"}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e43acae4-5537-4b9f-979d-9a28e8d2ea5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2168f504-8969-41af-8d78-325a0cb218bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1dd43001-4728-4f4e-bf2f-3b0bf2f2ccb9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b239cc9f-b3ff-445f-a2fc-c453b2777ffc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.050531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': ''}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f8b6a587-7ce4-403a-83c0-8253a1b92e4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.280842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'manageable'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-516ef0c6-ec37-476c-b825-b543b016ff8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.070933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.068347s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': ''}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-eb4de24a-4729-435c-baac-9f6fc0e6a856 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.046410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.106826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c531ef79-d7f7-4163-879e-b66ddb65318d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_boot_interface": null, "enabled_boot_interfaces": []}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-012f4b1a-3b22-4d8e-80da-74d4f3d18998 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f27dda40-84f8-4af7-874e-6ea298f5a5f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-488e1399-0f66-4272-a78b-b3a29d30e926 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e665bba9-d77a-4cd4-9f51-68352be664 f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.032980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.030676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.085210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'i am invalid'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2e8b9001-d641-4f70-b6ab-e3b0ac658fa0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.147889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'inspect'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d973383e-cbff-43b4-84c1-617d891cd59f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.056487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.134472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f31e47d-6450-4819-b7c1-4603c45357e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6edcfe62-ba0d-4225-9ffc-bf7b95b7c82d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66000a0c-d2dd-46cd-bbc7-f909483edfa1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req- 201e8b5a-326a-4ac1-bf3f-cb5ec53698be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96b52d02-6547-4497-8d1e-ad25a652f7af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test_check__check_steps_wrappers [0.029398s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.101050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34015d8c-0f85-4e8e-8303-488183a3d36a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2025-05-19T19:09:25.291432+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version [0.033677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-43049e3b-8d46-4da6-bfaf-63a3646ca27e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET /v1/drivers/fake-hardware-type?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f92764d1-a938-4259-b14d-29ceb3092d9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.099367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'inspect'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-480f9eb3-b34e-484b-a1ff-c78ff7dae29f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.081543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/children WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc45a193-d70f-4851-9e3b-afe028260ef4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["d5242f42-1d29-40db-84d8-c7a66e2630b8"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields [0.074752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type?fields=name,hosts WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27ed69f3-fcb2-45dc-9102-57da76c8aa8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.058090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'manage'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-035d516f-975f-4e8f-8ab2-4a88d4df1919 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.052281s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/children WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02645427-eb32-47ea-99c0-0896c62e415d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["d2e3ebe3-dda3-45bb-b241-6657d16be97a", "684ea585-fd6e-4556-885f-fdd60613876c"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.040413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'manage'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-4f60c776-4117-474f-a489-d21a016d68bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.131948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'maintenance'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-839fa1f3-4f30-4c7b-b7b4-eb2ac30d3317 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'management'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d309598b-8264-40d0-8ba3-ebe2478b6aee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'states'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-435de157-7be0-444c-8841-84ae053627d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-59776f95-4297-47ac-925f-1e61db8fd9a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'detail'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4335c736-617b-4679-8eb7-b2b6fb5fbffa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'validate'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fce61509-6445-4431-971c-87bb76313fb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.068235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type?fields=name,invalid WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3890b07-4fe7-47bb-80a6-0bd2f3c26383 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.035892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aabb4a6a-b242-4123-a4ac-b4d3dfb0fb04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.069204s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b843a1c2-0b11-41cf-a7f6-5a7518c1ae9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.063225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=fdd5a6f5-f478-4585-a141-51a16bf2c7fa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc19284a-a0d1-438a-9ee6-b9daab5b2d13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.100631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power off'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f205afa4-1376-422c-8c16-5748c878c723 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power off'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7f5ab25a-edf6-43d7-a3a3-997fc31dd799 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"clean wait\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.095295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df8da76d-0220-4117-a4a5-6085209d361a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf8c770a-1e7e-4dc6-b254-6ec769683d53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff9a303b-fa5b-4d12-a880-c436f82c025d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_ignores_parent_if_include_children_indicated [0.039865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?include_children=True&parent_node=111 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f461ef6-ef71-4dce-b401-d509677fd002 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "6608f95d-4772-4b62-b4fc-169aa79ebf5c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/6608f95d-4772-4b62-b4fc-169aa79ebf5c", "rel": "self"}, {"href": "http://localhost/nodes/6608f95d-4772-4b62-b4fc-169aa79ebf5c", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.064197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/5e1025c3-3306-4bb6-a29e-f12379973d2b WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '734affbd-00d3-43dd-b715-cd31f9cc9f9d'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d076c8a-8805-4bf5-9bc9-1de951ca83cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.050477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'not-supported'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e5fdf0e-27f7-44c4-8004-504e29843e12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.054389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=f804d715-13b4-441f-8c1a-575bb33a40f4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb2b3b9e-b38e-4037-903e-a09ef518815b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.044113s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/states/power WITH {'target': 'power on'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states Openstack-Request-Id: req-53b71df5-e706-49cf-b6f9-52ec3ce1d592 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.064794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d9f69261-1172-4c4e-ab77-85a2113da03b WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '1076836f-a58c-490f-849d-519a1eeed37f'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bb6222b9-588d-44e9-84c8-a78aaddb5055 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.098390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da1a38df-b8cf-4c60-99de-b4dc2b6af7bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fda8bc51-a10b-4e3c-b285-53f3105cc899 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]} GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9748403f-feba-4098-a7a2-d035b3132d09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host2", "fake-host1"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.051146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?include_children=True&fields=uuid,lessee,name,parent_node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc46fbbe-6725-4524-aa07-36bd98867ef5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "lessee": "6b603564-1f13-4f59-978d-df95f1a8312c", "name": "din", "parent_node": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.039220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ab759df2-3109-4ed1-99f0-38ce39b8a170 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.061413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/96d79593-fa90-4efa-9324-0fabda96e74d WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4bdc06c1-82ac-4a4a-af4d-7f8fb6114932 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /conductor. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.036703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e37cf569-3322-424a-bc75-7a70ba3c9918 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "6da41b23-c143-4cd5-a105-8bef4c4c88a0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/6da41b23-c143-4cd5-a105-8bef4c4c88a0", "rel": "self"}, {"href": "http://localhost/nodes/6da41b23-c143-4cd5-a105-8bef4c4c88a0", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.059869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-598ea3cc-cd6a-421e-a81e-8ecb0a67ae42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_off_with_disable_power_off [0.075098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power off'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-62360e74-7775-4162-87ef-1abe311c0636 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to power off.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history [0.051997s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0dc59459-c042-44b3-be99-e05ed20bb6ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": []} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.058033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87599d94-0ef0-4a75-9ce6-aab2d625917a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab4e12a7-c7aa-428b-baaf-25b0b9fb8c23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62d8cc61-b179-4878-93c6-6e98fc2769c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.050243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on', 'timeout': 0} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a78cf073-c351-4de7-a1d0-90009a4a80a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.039824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6704dde0-4716-40c0-a9f6-dbf10362cc1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail [0.053941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34c7fc52-806c-4690-8713-5cdd779ec404 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "af90988e-1390-4705-889e-f26a835562ad", "created_at": "2025-05-19T19:09:25.859119+00:00", "severity": null, "event_type": null, "event": "meow", "conductor": "cat-tree1", "user": "peaches", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/af90988e-1390-4705-889e-f26a835562ad", "rel": "self"}]}, {"uuid": "b75459a9-556c-41db-9e8a-101b5edcfcfe", "created_at": "2025-05-19T19:09:25.860006+00:00", "severity": null, "event_type": null, "event": "purr", "conductor": "cat-tree2", "user": "sage", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b75459a9-556c-41db-9e8a-101b5edcfcfe", "rel": "self"}]}, {"uuid": "964839c1-932d-4f0b-b13a-db60043e6181", "created_at": "2025-05-19T19:09:25.860695+00:00", "severity": null, "event_type": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!", "conductor": "cat-tree3", "user": "bella", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/964839c1-932d-4f0b-b13a-db60043e6181", "rel": "self"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.044482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-114aebea-390c-404b-9c0b-c5a7c98ada81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.069076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on', 'timeout': 0} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8147e957-08fe-49dd-8239-af8769272f83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.054171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd0736ca-48fc-48eb-bf76-7edfed57e547 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "b58f9db5-6cd1-4d7b-b1af-9575f5e19acc", "created_at": "2025-05-19T19:09:25.914190+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b58f9db5-6cd1-4d7b-b1af-9575f5e19acc", "rel": "self"}]}, {"uuid": "bbfb2169-15b1-4a40-a534-0fd1828113e2", "created_at": "2025-05-19T19:09:25.914889+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/bbfb2169-15b1-4a40-a534-0fd1828113e2", "rel": "self"}]}, {"uuid": "80d1ae6e-b144-493c-82fb-48f4ff90204b", "created_at": "2025-05-19T19:09:25.916840+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/80d1ae6e-b144-493c-82fb-48f4ff90204b", "rel": "self"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_empty [0.051350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1038afd3-840a-4245-90bd-5571691edb97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_with_sort [0.059662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?sort_dir=desc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-faf14fea-0d11-406f-a05f-13cc5312602b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "152a56cf-9912-4cc2-ae49-bb2e426c583c", "created_at": "2025-05-19T19:09:25.979443+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/152a56cf-9912-4cc2-ae49-bb2e426c583c", "rel": "self"}]}, {"uuid": "3caf50b0-913f-4c1d-92fe-702f4dfe0840", "created_at": "2025-05-19T19:09:25.975656+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3caf50b0-913f-4c1d-92fe-702f4dfe0840", "rel": "self"}]}, {"uuid": "3d393833-4cbe-4d0c-8807-de543b21f9dd", "created_at": "2025-05-19T19:09:25.974983+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3d393833-4cbe-4d0c-8807-de543b21f9dd", "rel": "self"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all [0.041782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4aeba6df-3450-4032-aca2-5e98b0fea6b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": [{"uuid": "0dc37963-c7a6-4007-aa9f-71c7598d1fee", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/0dc37963-c7a6-4007-aa9f-71c7598d1fee", "rel": "self"}, {"href": "http://localhost/inspection/0dc37963-c7a6-4007-aa9f-71c7598d1fee", "rel": "bookmark"}]}, {"uuid": "d86b0fd0-5f9a-4f7a-b96b-bf6609e9336e", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/d86b0fd0-5f9a-4f7a-b96b-bf6609e9336e", "rel": "self"}, {"href": "http://localhost/inspection/d86b0fd0-5f9a-4f7a-b96b-bf6609e9336e", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.109107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on', 'timeout': 0} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-37e48ff1-e7de-4937-8462-50995b2cd7ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all_invalid_api_version [0.060025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow inspection rules\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.071080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-dcb3f436-49f7-400e-a275-8d6344abfb4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one [0.053641s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/20680624-b97e-477b-89a7-f450f36b616a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f376c71-1adb-4d93-8750-7a6ad038728c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "20680624-b97e-477b-89a7-f450f36b616a", "created_at": "2025-05-19T19:09:26.109522+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/20680624-b97e-477b-89a7-f450f36b616a", "rel": "self"}, {"href": "http://localhost/inspection/20680624-b97e-477b-89a7-f450f36b616a", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one_invalid_api_version [0.022847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/e6df2b6d-1013-49be-9ed6-7ce94f3bd397 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow inspection rules\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.051930s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-636ef166-80a0-4014-b9b3-46d4f3bc52d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.421922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e2144253-b280-4a0d-bd91-c3eb17c42d87 WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3208b9c7-6267-404a-bd89-cac52d38d711 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.44 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /deploy_step. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.060863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-042873d0-ad22-4963-9960-281d8064ccf6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_rule_data [0.107344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '6e1254f7-59a5-46a5-8231-dc169315ec7e', 'description': 'an inspection rule', 'sensitive': False, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'set-attribute', 'args': {'path': 'test', 'value': 'secret'}}], 'conditions': [{'op': 'eq', 'args': {'values': [1, 1]}}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/6e1254f7-59a5-46a5-8231-dc169315ec7e Openstack-Request-Id: req-cd2fbb90-7464-453c-ac1f-b4c3ca1d6b62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6e1254f7-59a5-46a5-8231-dc169315ec7e", "created_at": "2025-05-19T19:09:26.235147+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "eq", "args": {"values": [1, 1]}}], "actions": [{"op": "set-attribute", "args": {"path": "test", "value": "secret"}, "loop": []}], "links": [{"href": "http://localhost/v1/inspection/6e1254f7-59a5-46a5-8231-dc169315ec7e", "rel": "self"}, {"href": "http://localhost/inspection/6e1254f7-59a5-46a5-8231-dc169315ec7e", "rel": "bookmark"}]} GET /v1/inspection_rules/6e1254f7-59a5-46a5-8231-dc169315ec7e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-092716cf-82fc-4a95-871f-eb260767e297 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6e1254f7-59a5-46a5-8231-dc169315ec7e", "created_at": "2025-05-19T19:09:26.235147+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "eq", "args": {"values": [1, 1]}}], "actions": [{"op": "set-attribute", "args": {"path": "test", "value": "secret"}, "loop": []}], "links": [{"href": "http://localhost/v1/inspection/6e1254f7-59a5-46a5-8231-dc169315ec7e", "rel": "self"}, {"href": "http://localhost/inspection/6e1254f7-59a5-46a5-8231-dc169315ec7e", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.082703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on', 'timeout': 2} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f8b3d8f1-9f29-41b4-976f-6720ee2137b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_sensitive_rule_hides_data [0.071946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'ae8d1de1-5b7f-4629-a830-d4f8e288991f', 'description': 'an inspection rule', 'sensitive': True, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'set-attribute', 'args': {'path': 'test', 'value': 'secret'}}], 'conditions': [{'op': 'eq', 'args': {'values': [1, 1]}}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/ae8d1de1-5b7f-4629-a830-d4f8e288991f Openstack-Request-Id: req-1199f72a-8e6a-460d-a58d-0665b4d97f7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ae8d1de1-5b7f-4629-a830-d4f8e288991f", "created_at": "2025-05-19T19:09:26.320253+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/ae8d1de1-5b7f-4629-a830-d4f8e288991f", "rel": "self"}, {"href": "http://localhost/inspection/ae8d1de1-5b7f-4629-a830-d4f8e288991f", "rel": "bookmark"}]} GET /v1/inspection_rules/ae8d1de1-5b7f-4629-a830-d4f8e288991f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9001b499-a743-4e30-bd49-52423acb2470 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ae8d1de1-5b7f-4629-a830-d4f8e288991f", "created_at": "2025-05-19T19:09:26.320253+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/ae8d1de1-5b7f-4629-a830-d4f8e288991f", "rel": "self"}, {"href": "http://localhost/inspection/ae8d1de1-5b7f-4629-a830-d4f8e288991f", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.167864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2da09d98-e73b-4bf3-9bac-deae7e42e5c0 WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4fd5d917-f9d9-421d-9e5d-3e2bfeafce9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.379232s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.068146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on', 'timeout': 2} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a44da985-e93d-49ff-84ad-0a87295c06e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.048480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ccdec3f7-440b-4793-a3a0-58e1f5ee1e8c WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a07bbdb2-88ef-4797-ac3b-a262864f7ad0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /fault. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.053898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on', 'timeout': 2} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-ac9d6818-f70c-4f71-b298-18e9a3eed480 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_list_hides_sensitive_data [0.121055s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'da0c1099-ca7c-48b9-acc9-f0b4631a625a', 'description': 'an inspection rule', 'sensitive': True, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'set-attribute', 'args': ['/driver', 'idrac'], 'inspection_rule_id': None}], 'conditions': [{'op': 'is-true', 'args': ['{node.auto_discovered}'], 'multiple': 'any', 'inspection_rule_id': None}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/da0c1099-ca7c-48b9-acc9-f0b4631a625a Openstack-Request-Id: req-f9345996-867f-4517-b695-b5e91fb269c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "da0c1099-ca7c-48b9-acc9-f0b4631a625a", "created_at": "2025-05-19T19:09:26.412285+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/da0c1099-ca7c-48b9-acc9-f0b4631a625a", "rel": "self"}, {"href": "http://localhost/inspection/da0c1099-ca7c-48b9-acc9-f0b4631a625a", "rel": "bookmark"}]} POST /v1/inspection_rules WITH {'uuid': '28e475e9-aedd-4d3e-b5b0-df044737e34c', 'description': 'an inspection rule', 'sensitive': False, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'set-attribute', 'args': ['/driver', 'idrac'], 'inspection_rule_id': None}], 'conditions': [{'op': 'is-true', 'args': ['{node.auto_discovered}'], 'multiple': 'any', 'inspection_rule_id': None}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/28e475e9-aedd-4d3e-b5b0-df044737e34c Openstack-Request-Id: req-adaf4a31-6a57-4a31-b4be-cd4ad0321401 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "28e475e9-aedd-4d3e-b5b0-df044737e34c", "created_at": "2025-05-19T19:09:26.442188+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/28e475e9-aedd-4d3e-b5b0-df044737e34c", "rel": "self"}, {"href": "http://localhost/inspection/28e475e9-aedd-4d3e-b5b0-df044737e34c", "rel": "bookmark"}]} GET /v1/inspection_rules?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe5bba5b-e75c-4e70-8e7c-cec41a366070 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": [{"uuid": "da0c1099-ca7c-48b9-acc9-f0b4631a625a", "created_at": "2025-05-19T19:09:26.412285+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/da0c1099-ca7c-48b9-acc9-f0b4631a625a", "rel": "self"}, {"href": "http://localhost/inspection/da0c1099-ca7c-48b9-acc9-f0b4631a625a", "rel": "bookmark"}]}, {"uuid": "28e475e9-aedd-4d3e-b5b0-df044737e34c", "created_at": "2025-05-19T19:09:26.442188+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/28e475e9-aedd-4d3e-b5b0-df044737e34c", "rel": "self"}, {"href": "http://localhost/inspection/28e475e9-aedd-4d3e-b5b0-df044737e34c", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_one [0.045995s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07c64068-db46-481c-86a1-684b7da7d0d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": [{"uuid": "1c6eeee0-e71f-4f20-962c-257b28377e5e", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/1c6eeee0-e71f-4f20-962c-257b28377e5e", "rel": "self"}, {"href": "http://localhost/inspection/1c6eeee0-e71f-4f20-962c-257b28377e5e", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.060705s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off', 'timeout': 0} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ea2e4bb3-3320-466c-a0dd-8a28caed708c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.122611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddb7fcd6-18ec-42bb-bd24-e85092265a94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:26.443434+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.165336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e57bacc-5f36-40fc-aca5-146eb2ccdab3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "f66d50b9-79dd-4c1d-a5ad-cc965051048d", "created_at": "2025-05-19T19:09:26.450029+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f66d50b9-79dd-4c1d-a5ad-cc965051048d", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=f66d50b9-79dd-4c1d-a5ad-cc965051048d"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=f66d50b9-79dd-4c1d-a5ad-cc965051048d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b98972f-162e-4291-8349-49a6d1362e71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "fd6014b2-b847-40a7-ad79-ade1f52cdd96", "created_at": "2025-05-19T19:09:26.453178+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fd6014b2-b847-40a7-ad79-ade1f52cdd96", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-05-19T19:09:26Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=f66d50b9-79dd-4c1d-a5ad-cc965051048d)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=fd6014b2-b847-40a7-ad79-ade1f52cdd96"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=fd6014b2-b847-40a7-ad79-ade1f52cdd96 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5849433c-91df-4174-a633-dac1cb9701fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "da8ab6cc-062f-4a75-aef2-6e0015aefd5e", "created_at": "2025-05-19T19:09:26.453888+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/da8ab6cc-062f-4a75-aef2-6e0015aefd5e", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-05-19T19:09:26Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=fd6014b2-b847-40a7-ad79-ade1f52cdd96)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=da8ab6cc-062f-4a75-aef2-6e0015aefd5e"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.050694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off', 'timeout': 0} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fd249d43-a43e-4a71-8a37-fe4a2e2d4cc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.037833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off', 'timeout': 0} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-31aff40a-3fbc-4ca1-9a83-f5bb83e95ad4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.096294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-291ad655-edac-4420-b5b1-ac186ad3062f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:26.554291+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item [0.111441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/73dcd6d6-55a5-41f9-87fa-f2fe9026b7c9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e76ec41f-410d-417c-8dd4-2bde33582089 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"uuid": "73dcd6d6-55a5-41f9-87fa-f2fe9026b7c9", "created_at": "2025-05-19T19:09:26.614319+00:00", "severity": null, "event_type": null, "event": "meow", "conductor": "cat-tree1", "user": "peaches", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/73dcd6d6-55a5-41f9-87fa-f2fe9026b7c9", "rel": "self"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.044417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c7c67a23-ba7e-4ecc-843c-15c2d8ab72d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.109459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a948abd3-2938-4a47-b0b5-b4c0ad548024 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update [0.143471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70 WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8faa140-52c3-48a8-8be2-74b4adbc1ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c161ecec-f0c2-4a43-9c4c-35a20c785f70", "created_at": "2025-05-19T19:09:26.720491+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "foo", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70", "rel": "self"}, {"href": "http://localhost/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/ports", "rel": "self"}, {"href": "http://localhost/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/states", "rel": "self"}, {"href": "http://localhost/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/volume", "rel": "self"}, {"href": "http://localhost/nodes/c161ecec-f0c2-4a43-9c4c-35a20c785f70/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule [0.309512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'e9376f8c-7afb-44cc-aefc-130cfdd782b5', 'description': 'an inspection rule', 'sensitive': False, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'set-attribute', 'args': ['/driver', 'idrac'], 'inspection_rule_id': None}], 'conditions': [{'op': 'is-true', 'args': ['{node.auto_discovered}'], 'multiple': 'any', 'inspection_rule_id': None}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/e9376f8c-7afb-44cc-aefc-130cfdd782b5 Openstack-Request-Id: req-4ef861d1-028d-41f6-92af-69c86c77a5f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e9376f8c-7afb-44cc-aefc-130cfdd782b5", "created_at": "2024-08-27T00:00:00+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/e9376f8c-7afb-44cc-aefc-130cfdd782b5", "rel": "self"}, {"href": "http://localhost/inspection/e9376f8c-7afb-44cc-aefc-130cfdd782b5", "rel": "bookmark"}]} GET /v1/inspection_rules/e9376f8c-7afb-44cc-aefc-130cfdd782b5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68fdf58d-f7a4-4ecd-8d7d-ce6417669084 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e9376f8c-7afb-44cc-aefc-130cfdd782b5", "created_at": "2024-08-27T00:00:00+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/e9376f8c-7afb-44cc-aefc-130cfdd782b5", "rel": "self"}, {"href": "http://localhost/inspection/e9376f8c-7afb-44cc-aefc-130cfdd782b5", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_generate_uuid [0.050801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'description': 'an inspection rule', 'sensitive': False, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'set-attribute', 'args': ['/driver', 'idrac'], 'inspection_rule_id': None}], 'conditions': [{'op': 'is-true', 'args': ['{node.auto_discovered}'], 'multiple': 'any', 'inspection_rule_id': None}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace Openstack-Request-Id: req-5f53da84-4e3e-442b-b2b1-02ba14733a6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace", "created_at": "2025-05-19T19:09:26.850485+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace", "rel": "self"}, {"href": "http://localhost/inspection/4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace", "rel": "bookmark"}]} GET /v1/inspection_rules/4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0d5726c-70c0-46ad-aff0-407d8cb51afb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace", "created_at": "2025-05-19T19:09:26.850485+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "is-true", "args": ["{node.auto_discovered}"]}], "actions": [{"op": "set-attribute", "args": ["/driver", "idrac"], "loop": []}], "links": [{"href": "http://localhost/v1/inspection/4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace", "rel": "self"}, {"href": "http://localhost/inspection/4171a5bf-a1b0-4a5d-a2b2-3bf545a51ace", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found [0.214277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/52949728-59fc-4651-84c8-b0a16b469372 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-db050823-ce94-4145-94ff-2c4104aa76c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node history record 52949728-59fc-4651-84c8-b0a16b469372 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.119581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-ea885ad1-67e1-4eff-94e1-aa9b15107423 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_with_optional_args [0.054633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'b38251ff-2324-4c6a-b9a4-98cccc00ea4e', 'description': 'an inspection rule', 'sensitive': False, 'phase': 'main', 'priority': 0, 'actions': [{'op': 'extend-attribute', 'args': {'path': 'properties/capabilities', 'value': 'test:value'}, 'unique': True}, {'op': 'set-attribute', 'args': {'path': 'properties/test', 'value': 'test-value'}}], 'conditions': [{'op': 'eq', 'args': {'values': [5, 5]}, 'force_strings': True}, {'op': 'gt', 'args': {'values': [10, 5]}}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/inspection_rules/b38251ff-2324-4c6a-b9a4-98cccc00ea4e Openstack-Request-Id: req-5ddd9120-acf0-4308-a225-55d5d8a57dfa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b38251ff-2324-4c6a-b9a4-98cccc00ea4e", "created_at": "2025-05-19T19:09:26.909560+00:00", "updated_at": null, "description": "an inspection rule", "priority": 0, "sensitive": false, "phase": "main", "conditions": [{"op": "eq", "args": {"values": [5, 5]}}, {"op": "gt", "args": {"values": [10, 5]}}], "actions": [{"op": "extend-attribute", "args": {"path": "properties/capabilities", "value": "test:value"}, "loop": []}, {"op": "set-attribute", "args": {"path": "properties/test", "value": "test-value"}, "loop": []}], "links": [{"href": "http://localhost/v1/inspection/b38251ff-2324-4c6a-b9a4-98cccc00ea4e", "rel": "self"}, {"href": "http://localhost/inspection/b38251ff-2324-4c6a-b9a4-98cccc00ea4e", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.163076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8233dc67-73dd-4c2e-885f-ed7b680d1ef5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c82e1f3c-00f8-4439-8b5a-a23ea2bac378", "created_at": "2025-05-19T19:09:26.827749+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {"foo": "bar"}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378", "rel": "self"}, {"href": "http://localhost/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/ports", "rel": "self"}, {"href": "http://localhost/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/states", "rel": "self"}, {"href": "http://localhost/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/volume", "rel": "self"}, {"href": "http://localhost/nodes/c82e1f3c-00f8-4439-8b5a-a23ea2bac378/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.059152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4279b26a-f7c3-4045-9eff-d70c42baf3de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.076106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off', 'timeout': 2} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1d0f86a1-2ed4-4a1a-aa53-0c9ada8f3f63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version [0.126938s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1234 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.071700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content Openstack-Request-Id: req-28d964d5-3269-4743-bdde-9ed15801dcd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.091046s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off', 'timeout': 2} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b1d0c419-9bd0-432b-b159-e68153380ac2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.068155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.1 GOT Response: 204 No Content Openstack-Request-Id: req-f9010182-8e20-4b06-8f9e-232299e153fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.186157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/27a732c7-3186-461f-b115-4c44d4594250 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-076994ac-6f54-4934-9bcd-f3e88ba42e70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27a732c7-3186-461f-b115-4c44d4594250", "created_at": "2025-05-19T19:09:27.003229+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {"foo": "bar"}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/27a732c7-3186-461f-b115-4c44d4594250", "rel": "self"}, {"href": "http://localhost/nodes/27a732c7-3186-461f-b115-4c44d4594250", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27a732c7-3186-461f-b115-4c44d4594250/ports", "rel": "self"}, {"href": "http://localhost/nodes/27a732c7-3186-461f-b115-4c44d4594250/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27a732c7-3186-461f-b115-4c44d4594250/states", "rel": "self"}, {"href": "http://localhost/nodes/27a732c7-3186-461f-b115-4c44d4594250/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27a732c7-3186-461f-b115-4c44d4594250/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27a732c7-3186-461f-b115-4c44d4594250/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27a732c7-3186-461f-b115-4c44d4594250/volume", "rel": "self"}, {"href": "http://localhost/nodes/27a732c7-3186-461f-b115-4c44d4594250/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent [0.127996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/69515edc-8ba0-4efd-8146-c7d1cb2fee6c WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-daec5e49-e16a-4dc5-943e-f8313a2a6c83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:27.043107+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.028706s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0d49e8bb-fe03-4086-874d-4062d4964f95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.100728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off', 'timeout': 2} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-f28bc010-f11e-464c-bc34-085ae2b190e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.061750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/dae4b644-8615-4438-8da8-4df7a0f08c06 WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c1c5a475-2692-43de-b3f6-02b195073d57 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.052832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.json GOT Response: 204 No Content Openstack-Request-Id: req-f74f5abe-7afd-4236-9319-583d2b0161df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.057898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-182b3edf-ddaf-4b9e-aded-6880a55160c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_with_disable_power_off [0.104976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'soft power off'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4564e10b-3e87-40ab-ac06-2ace96c7e524 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to soft power off.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.055196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-cdf80f24-8e75-4676-a667-e165cc74b978 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra [0.198839s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603 WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aab5eabe-c9da-4dcc-a2ed-47485cc1ee1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "4ea8fb7c-c0f4-47e9-a62c-df90af07b603", "created_at": "2025-05-19T19:09:27.213765+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "foo", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {"foo": "bar"}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603", "rel": "self"}, {"href": "http://localhost/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/ports", "rel": "self"}, {"href": "http://localhost/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/states", "rel": "self"}, {"href": "http://localhost/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/volume", "rel": "self"}, {"href": "http://localhost/nodes/4ea8fb7c-c0f4-47e9-a62c-df90af07b603/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.034231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3aa7a14c-f6e5-4094-86e6-9d6d10683e12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.107070s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'provide'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-66880823-8cc3-4f72-b750-b0f35735ac11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.074434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e96ee861-fc10-4b02-b5a4-b3967cc555e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.285834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4507978b-17ae-4785-bf10-e56cf3fe1ff2 WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4022553d-ff8a-436e-be3a-0c084de65aa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"(sqlite3.ProgrammingError) Error binding parameter 1: type 'MagicMock' is not supported\\n[SQL: SELECT allocations.id AS allocations_id, allocations.uuid AS allocations_uuid, allocations.name AS allocations_name, allocations.node_id AS allocations_node_id, allocations.state AS allocations_state, allocations.owner AS allocations_owner, allocations.last_error AS allocations_last_error, allocations.resource_class AS allocations_resource_class, allocations.traits AS allocations_traits, allocations.candidate_nodes AS allocations_candidate_nodes, allocations.extra AS allocations_extra, allocations.conductor_affinity AS allocations_conductor_affinity, allocations.version AS allocations_version, allocations.created_at AS allocations_created_at, allocations.updated_at AS allocations_updated_at \\nFROM allocations \\nWHERE allocations.id = ?]\\n[parameters: (,)]\\n(Background on this error at: https://sqlalche.me/e/20/f405)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.090109s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6f2f21ed-ad38-4e93-b192-67014a164f7a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.119594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0eba1980-0f84-41a5-9355-8ae3f1856367 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.052442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6a651469-408c-455c-8d07-54ad780eead2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.241501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676 WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3713e50d-3adb-4579-8117-2a99c7f15d18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "4d21e040-3e2a-4b66-9b76-5be1f1b90676", "created_at": "2025-05-19T19:09:27.417475+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "foo", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676", "rel": "self"}, {"href": "http://localhost/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/states", "rel": "self"}, {"href": "http://localhost/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/volume", "rel": "self"}, {"href": "http://localhost/nodes/4d21e040-3e2a-4b66-9b76-5be1f1b90676/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_remove_parent [0.097780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e93eda30-991d-4763-851a-2900cd578239 WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f8960a1e-3850-4adc-8f59-fac8a50db884 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:27.515920+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.044202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-aa7758bb-56dd-483d-9e4e-b854f5b96754 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.054936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0be8ebf-e42d-47e5-bbc4-38cbdeafc123 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "c5215541-f7be-4ba6-8c5f-faa5d9211129", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c5215541-f7be-4ba6-8c5f-faa5d9211129", "rel": "self"}, {"href": "http://localhost/nodes/c5215541-f7be-4ba6-8c5f-faa5d9211129", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.039296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c7c9b8ff-989d-4b19-9020-b066d7b9e9e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_uuid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.049688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e1b32d4-38ee-4d79-b7c5-6a5b903b55c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "00b870ac-3436-43fa-9dbc-8292cb51fff4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/00b870ac-3436-43fa-9dbc-8292cb51fff4", "rel": "self"}, {"href": "http://localhost/nodes/00b870ac-3436-43fa-9dbc-8292cb51fff4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.144316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f9af98b-bb5a-4b2e-8c38-70ef9c0c675e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.051612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c8160006-723c-4fb4-97d2-6c5f2ccec9c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.086621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e74d6bf9-26cb-4676-b740-82d3b4afd6a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"shard": "foo", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.055112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e991f6ce-f773-4297-8189-d5c266b13aba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.095074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/states/provision WITH {'target': 'active'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states Openstack-Request-Id: req-5f5df979-ec79-41ca-ba9e-02185da1dcea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.032608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7c58c9eb-b0f3-439c-b4bc-776408f39e14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.251143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-842acb5f-ccc9-4be2-bde5-d716fd86cc47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb", "created_at": "2025-05-19T19:09:27.706356+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "foo", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {"foo": "bar"}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb", "rel": "self"}, {"href": "http://localhost/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/ports", "rel": "self"}, {"href": "http://localhost/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/states", "rel": "self"}, {"href": "http://localhost/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/volume", "rel": "self"}, {"href": "http://localhost/nodes/6d5557bc-37b3-4b1e-81bb-2a34f8ed84fb/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.051007s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-54f3711b-28d8-4770-924a-95fd84faa24c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.036774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c8998987-3601-41e5-a55d-c1651669f315 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.074450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/states/provision WITH {'target': 'active'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c30055e3-0d78-47ba-a2fe-58f1f4c03f3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.044599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ce10eeef-e1f6-4a20-ae5c-918b5a87a6a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid associated: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_sharded [0.055402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81a88c32-55c7-424c-af71-11acffd70f16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} GET /v1/nodes?sharded=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac35d716-e476-4057-b8f6-4b9aaf015d91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "92894ad2-8936-4b99-8b98-d8bf7ac4c2c5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/92894ad2-8936-4b99-8b98-d8bf7ac4c2c5", "rel": "self"}, {"href": "http://localhost/nodes/92894ad2-8936-4b99-8b98-d8bf7ac4c2c5", "rel": "bookmark"}]}, {"uuid": "3a9c9d6d-ecab-4071-a43e-31a6512e8b97", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/3a9c9d6d-ecab-4071-a43e-31a6512e8b97", "rel": "self"}, {"href": "http://localhost/nodes/3a9c9d6d-ecab-4071-a43e-31a6512e8b97", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.073417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6bbaa85-b3bc-48b2-9d26-a74d8165d945 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "9248472a-b2fc-4e7f-865f-b64734639b4d", "instance_uuid": "e7db2e09-3c32-4c6d-8135-aa77c15f4a60", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9248472a-b2fc-4e7f-865f-b64734639b4d", "rel": "self"}, {"href": "http://localhost/nodes/9248472a-b2fc-4e7f-865f-b64734639b4d", "rel": "bookmark"}]}, {"uuid": "18ebd3ca-5e88-41a3-9ece-d07789a4a1ff", "instance_uuid": "b259445c-49ce-4899-8ae3-791c96a8cab6", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/18ebd3ca-5e88-41a3-9ece-d07789a4a1ff", "rel": "self"}, {"href": "http://localhost/nodes/18ebd3ca-5e88-41a3-9ece-d07789a4a1ff", "rel": "bookmark"}]}, {"uuid": "fc22402d-74d7-417d-9e8f-0eb10847f77a", "instance_uuid": "dd5cdc7d-6eb5-47bb-8e6e-81ced35a0cbb", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fc22402d-74d7-417d-9e8f-0eb10847f77a", "rel": "self"}, {"href": "http://localhost/nodes/fc22402d-74d7-417d-9e8f-0eb10847f77a", "rel": "bookmark"}]}, {"uuid": "d21dd44e-c9fb-45cf-a804-8c6b5ad35473", "instance_uuid": "e2a4e4a5-aab9-4af1-980d-60f1658f1a1f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d21dd44e-c9fb-45cf-a804-8c6b5ad35473", "rel": "self"}, {"href": "http://localhost/nodes/d21dd44e-c9fb-45cf-a804-8c6b5ad35473", "rel": "bookmark"}]}]} GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b37996f-d467-4cd1-983f-01ed12220ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "9248472a-b2fc-4e7f-865f-b64734639b4d", "instance_uuid": "e7db2e09-3c32-4c6d-8135-aa77c15f4a60", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9248472a-b2fc-4e7f-865f-b64734639b4d", "rel": "self"}, {"href": "http://localhost/nodes/9248472a-b2fc-4e7f-865f-b64734639b4d", "rel": "bookmark"}]}, {"uuid": "18ebd3ca-5e88-41a3-9ece-d07789a4a1ff", "instance_uuid": "b259445c-49ce-4899-8ae3-791c96a8cab6", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/18ebd3ca-5e88-41a3-9ece-d07789a4a1ff", "rel": "self"}, {"href": "http://localhost/nodes/18ebd3ca-5e88-41a3-9ece-d07789a4a1ff", "rel": "bookmark"}]}, {"uuid": "fc22402d-74d7-417d-9e8f-0eb10847f77a", "instance_uuid": "dd5cdc7d-6eb5-47bb-8e6e-81ced35a0cbb", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fc22402d-74d7-417d-9e8f-0eb10847f77a", "rel": "self"}, {"href": "http://localhost/nodes/fc22402d-74d7-417d-9e8f-0eb10847f77a", "rel": "bookmark"}]}, {"uuid": "d21dd44e-c9fb-45cf-a804-8c6b5ad35473", "instance_uuid": "e2a4e4a5-aab9-4af1-980d-60f1658f1a1f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d21dd44e-c9fb-45cf-a804-8c6b5ad35473", "rel": "self"}, {"href": "http://localhost/nodes/d21dd44e-c9fb-45cf-a804-8c6b5ad35473", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.088267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-e1c01a30-a1b1-48a6-9f76-06099344fc2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_single_shard_detail [0.060728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f6c46e1e-52b9-45c8-8116-ee3d464ea365 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:27.938302+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.041721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0951e402-cdce-471e-9cfd-a733c96c381e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:27.977989+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info [0.192907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7 WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b86bc412-a085-4919-b2bb-eb396b9eee75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "651b71c3-a5a2-47d8-b595-efc1c72ca1e7", "created_at": "2025-05-19T19:09:27.901076+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7", "rel": "self"}, {"href": "http://localhost/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/ports", "rel": "self"}, {"href": "http://localhost/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/states", "rel": "self"}, {"href": "http://localhost/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/volume", "rel": "self"}, {"href": "http://localhost/nodes/651b71c3-a5a2-47d8-b595-efc1c72ca1e7/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.076136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5271b6e-abc3-42e7-80d5-208e0b7d5831 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "fd9a9e47-7798-4580-af22-b2bdc01ab390", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fd9a9e47-7798-4580-af22-b2bdc01ab390", "rel": "self"}, {"href": "http://localhost/nodes/fd9a9e47-7798-4580-af22-b2bdc01ab390", "rel": "bookmark"}]}, {"uuid": "0fd1777c-431f-4d81-a653-b62ce9c54c71", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0fd1777c-431f-4d81-a653-b62ce9c54c71", "rel": "self"}, {"href": "http://localhost/nodes/0fd1777c-431f-4d81-a653-b62ce9c54c71", "rel": "bookmark"}]}, {"uuid": "13ab498a-d332-49e5-b105-ef001ee66f59", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/13ab498a-d332-49e5-b105-ef001ee66f59", "rel": "self"}, {"href": "http://localhost/nodes/13ab498a-d332-49e5-b105-ef001ee66f59", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=13ab498a-d332-49e5-b105-ef001ee66f59"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.077329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'not-supported'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2e958108-e613-4e9d-b78e-28e070de452b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.046911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a75bebf-2dfb-46d3-bcf4-a8a368e0766d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:28.033226+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.053718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9bdf156d-024b-45f9-aa80-40ae9c8d5d8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "36a9377e-c638-4321-92ab-ecc4c9186c4f", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/36a9377e-c638-4321-92ab-ecc4c9186c4f", "rel": "self"}, {"href": "http://localhost/nodes/36a9377e-c638-4321-92ab-ecc4c9186c4f", "rel": "bookmark"}]}, {"uuid": "2b46cda1-d0a2-4a39-ab53-85d56be5fece", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/2b46cda1-d0a2-4a39-ab53-85d56be5fece", "rel": "self"}, {"href": "http://localhost/nodes/2b46cda1-d0a2-4a39-ab53-85d56be5fece", "rel": "bookmark"}]}, {"uuid": "b4e0cbc3-a971-4f28-a2ae-8f5a396d28cb", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/b4e0cbc3-a971-4f28-a2ae-8f5a396d28cb", "rel": "self"}, {"href": "http://localhost/nodes/b4e0cbc3-a971-4f28-a2ae-8f5a396d28cb", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=b4e0cbc3-a971-4f28-a2ae-8f5a396d28cb"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.053202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/52:54:00:cf:2d:31 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-586bf0c8-04d4-4892-af03-877086012ada X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_uuid: 52:54:00:cf:2d:31\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.050745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-27ce5485-ab4e-481d-9b68-23c5dfacf3a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.076140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-712a6135-c4fa-40a9-9854-bc6d88ec42a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "70b7b9c0-c943-4e4f-aaca-4c756838310d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/70b7b9c0-c943-4e4f-aaca-4c756838310d", "rel": "self"}, {"href": "http://localhost/nodes/70b7b9c0-c943-4e4f-aaca-4c756838310d", "rel": "bookmark"}]}, {"uuid": "7d3d4912-80df-4a5c-aeff-a6ab234c2ef4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7d3d4912-80df-4a5c-aeff-a6ab234c2ef4", "rel": "self"}, {"href": "http://localhost/nodes/7d3d4912-80df-4a5c-aeff-a6ab234c2ef4", "rel": "bookmark"}]}, {"uuid": "8ec0a38e-d4f1-41b3-b5cc-e0c85e4dc84e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8ec0a38e-d4f1-41b3-b5cc-e0c85e4dc84e", "rel": "self"}, {"href": "http://localhost/nodes/8ec0a38e-d4f1-41b3-b5cc-e0c85e4dc84e", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=8ec0a38e-d4f1-41b3-b5cc-e0c85e4dc84e"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none [0.174501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b WITH [] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4661aef9-7b24-47df-8fb3-6f25d8cfbf43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f671eaef-56ca-4e5e-8f07-f016ca984a3b", "created_at": "2025-05-19T19:09:28.107416+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b", "rel": "self"}, {"href": "http://localhost/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/ports", "rel": "self"}, {"href": "http://localhost/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/states", "rel": "self"}, {"href": "http://localhost/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/volume", "rel": "self"}, {"href": "http://localhost/nodes/f671eaef-56ca-4e5e-8f07-f016ca984a3b/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.045836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=bcc77661-ff53-4b28-b988-47905b67be22 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-315755da-ff04-4182-81eb-d7bdc08563e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "5ad29c0d-7ab6-4f90-89b5-0c1f33befa41", "instance_uuid": "bcc77661-ff53-4b28-b988-47905b67be22", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5ad29c0d-7ab6-4f90-89b5-0c1f33befa41", "rel": "self"}, {"href": "http://localhost/nodes/5ad29c0d-7ab6-4f90-89b5-0c1f33befa41", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.095542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-01beeb60-b956-4810-8ba1-cf8eeeb5f659 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.047524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f50d6bf2-9a93-4014-9147-c3ce3f92abab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:28.231561+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.097099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9ff WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-58eda73c-3b84-4e66-ba99-3c23557cb04b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.040661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-54cb0362-c28a-4cb7-a609-a046c9aca884 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.062303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/3c0e2516-80db-487b-a099-57f969104fb4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2eff0c87-fa8a-46f4-837f-a2b80e1c00d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.029258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95c7a5f4-4b14-4819-9760-8ffd3bf54633 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid [0.044812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9252220-3040-41de-8df0-de9f6ed52d73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:28.350658+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.084705s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-14217c48-9b2e-4f61-9f36-4bc97b02c438 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.037249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ed0c6ac-190f-4e09-a8f2-e3db31f61d8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:28.387347+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "46c0bf8a-846d-49a5-9724-5a61a5efa6bf", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.044896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9aa14b32-3623-414c-a0d6-1f308e47e1bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_ident\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.107786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/local_link_connection/network_type', 'value': 'unmanaged', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3dcffd0-bd36-456b-a3d0-d252ad9ac9c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:28.351527+00:00", "updated_at": "2025-05-19T19:09:28.412908+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1", "network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.389910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7e72b7b3-c27c-4927-a3fc-a33de5907f21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match [0.035125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33d85f21-ec19-4141-b687-fbf4e61385db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.041019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/local_link_connection/network_type', 'value': 'unmanaged', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a5ea1bb8-23e4-49ea-a3e4-574239a665cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.037223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-da5d74e2-da4b-4548-b8b7-11ecb6c2e60e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.080478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/driver', 'value': 'foo', 'op': 'add'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-456759cb-1ed5-4438-91da-6a460ffa6939 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.091832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f84a67a6-db62-488a-8b1a-b12e5b3f1a14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden [0.078183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4941b2b7-9aaa-45ec-ab19-ec16d1edd321 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "f0760dda-6f40-429e-9148-980b99f4a9cb", "created_at": "2025-05-19T19:09:28.517080+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": "12345", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb", "rel": "self"}, {"href": "http://localhost/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/states", "rel": "self"}, {"href": "http://localhost/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/f0760dda-6f40-429e-9148-980b99f4a9cb/volume", "rel": "bookmark"}]}, {"uuid": "24e89f65-4259-4d8c-8669-7b9237ce251f", "created_at": "2025-05-19T19:09:28.518591+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": "12345", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired _reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f", "rel": "self"}, {"href": "http://localhost/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/ports", "rel": "self"}, {"href": "http://localhost/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/states", "rel": "self"}, {"href": "http://localhost/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/volume", "rel": "self"}, {"href": "http://localhost/nodes/24e89f65-4259-4d8c-8669-7b9237ce251f/volume", "rel": "bookmark"}]}, {"uuid": "5fef0652-51ae-4854-9772-d36f663f93ff", "created_at": "2025-05-19T19:09:28.526048+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": "12345", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/5fef0652-51ae-4854-9772-d36f663f93ff", "rel": "self"}, {"href": "http://localhost/nodes/5fef0652-51ae-4854-9772-d36f663f93ff", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/ports", "rel": "self"}, {"href": "http://localhost/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/states", "rel": "self"}, {"href": "http://localhost/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/volume", "rel": "self"}, {"href": "http://localhost/nodes/5fef0652-51ae-4854-9772-d36f663f93ff/volume", "rel": "bookmark"}]}, {"uuid": "4698e33d-2206-4c47-b425-76d03bbbaefd", "created_at": "2025-05-19T19:09:28.527596+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "12345", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd", "rel": "self"}, {"href": "http://localhost/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/ports", "rel": "self"}, {"href": "http://localhost/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/states", "rel": "self"}, {"href": "http://localhost/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/volume", "rel": "self"}, {"href": "http://localhost/nodes/4698e33d-2206-4c47-b425-76d03bbbaefd/volume", "rel": "bookmark"}]}, {"uuid": "d762ff98-7619-4f64-8816-ed70faf30f59", "created_at": "2025-05-19T19:09:28.529480+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "12345", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/d762ff98-7619-4f64-8816-ed70faf30f59", "rel": "self"}, {"href": "http://localhost/nodes/d762ff98-7619-4f64-8816-ed70faf30f59", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/ports", "rel": "self"}, {"href": "http://localhost/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/states", "rel": "self"}, {"href": "http://localhost/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/volume", "rel": "self"}, {"href": "http://localhost/nodes/d762ff98-7619-4f64-8816-ed70faf30f59/volume", "rel": "bookmark"}]}, {"uuid": "48f51019-3c22-4f1f-b4bf-881175b6bd4c", "created_at": "2025-05-19T19:09:28.530829+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "12345", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c", "rel": "self"}, {"href": "http://localhost/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/ports", "rel": "self"}, {"href": "http://localhost/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/states", "rel": "self"}, {"href": "http://localhost/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/volume", "rel": "self"}, {"href": "http://localhost/nodes/48f51019-3c22-4f1f-b4bf-881175b6bd4c/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.065134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/name', 'op': 'add', 'value': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c3f3642d-2c9c-4671-a5cb-0135bcbc3f4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Windows ME'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.108004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb9e19e8-9ec8-41ed-b7f3-22205a1a74eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:28.521338+00:00", "updated_at": "2025-05-19T19:09:28.564318+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.031228s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ed3549ca-02b5-40f7-9aec-c4501e23481e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.044615s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-40a55149-238a-4b9d-bc4c-0261b80da304 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.054090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/name', 'op': 'add', 'value': 'node-0'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f196a593-6f4b-4fc0-826c-83adabee1f36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false [0.045170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56ea4a7f-79f1-4153-aff2-736b5a551af0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} GET /v1/nodes?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f1be3a1-d8e0-47bc-8ea8-4f7658ef814c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.098153s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': ' '} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d506a5b9-a4b0-4b70-9921-8a041fad833e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.063457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-20101861-01fd-4413-999d-46454317e06a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_snmpv3 [0.051233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-111c8aad-cf03-460a-9bbe-422046ed2d3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:28.665566+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"snmp_version": 3, "snmp_user": "test-user", "snmp_auth_protocol": "sha", "snmp_auth_key": "******", "snmp_priv_protocol": "aes", "snmp_priv_key": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.102025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e45fd255-d306-46d7-96a9-33644ad6b8a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:28.645849+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.041402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3bdccd8-8544-499b-aa58-48a0b14973fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource [0.054549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa084879-f82d-4794-90fb-fc7e938ea3d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.068980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f45c937d-5bfc-44ff-a3f9-f999bd4f89ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:28.743193+00:00", "updated_at": "2025-05-19T19:09:28.779832+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.115459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f822f78-68d5-4fe7-a287-f291c666bad1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "7ebc8f16-1007-45ce-965d-1132da21b7fb", "created_at": "2025-05-19T19:09:28.774558+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "rc_1", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/7ebc8f16-1007-45ce-965d-1132da21b7fb", "rel": "self"}, {"href": "http://localhost/nodes/7ebc8f16-1007-45ce-965d-1132da21b7fb", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7ebc8f16-1007-45ce-965d-1132da21b7fb/ports", "rel": "self"}, {"href": "http://localhost/nodes/7ebc8f16-1007-45ce-965d-1132da21b7fb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7ebc8f16-1007-45ce-965d-1132da21b7fb/states", "rel": "self"}, {"href": "http://localhost/nodes/7ebc8f16-1007-45ce-965d-1132da21b7fb/states", "rel": "bookmark"}]}, {"uuid": "47c77086-2343-48df-bf3a-af63f7752e4c", "created_at": "2025-05-19T19:09:28.773157+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "rc_2", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/47c77086-2343-48df-bf3a-af63f7752e4c", "rel": "self"}, {"href": "http://localhost/nodes/47c77086-2343-48df-bf3a-af63f7752e4c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/47c77086-2343-48df-bf3a-af63f7752e4c/ports", "rel": "self"}, {"href": "http://localhost/nodes/47c77086-2343-48df-bf3a-af63f7752e4c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/47c77086-2343-48df-bf3a-af63f7752e4c/states", "rel": "self"}, {"href": "http://localhost/nodes/47c77086-2343-48df-bf3a-af63f7752e4c/states", "rel": "bookmark"}]}, {"uuid": "00bfb1c2-c1f0-4dc9-8609-cbaedde9344c", "created_at": "2025-05-19T19:09:28.771571+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_ state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "rc_3", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/00bfb1c2-c1f0-4dc9-8609-cbaedde9344c", "rel": "self"}, {"href": "http://localhost/nodes/00bfb1c2-c1f0-4dc9-8609-cbaedde9344c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/00bfb1c2-c1f0-4dc9-8609-cbaedde9344c/ports", "rel": "self"}, {"href": "http://localhost/nodes/00bfb1c2-c1f0-4dc9-8609-cbaedde9344c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/00bfb1c2-c1f0-4dc9-8609-cbaedde9344c/states", "rel": "self"}, {"href": "http://localhost/nodes/00bfb1c2-c1f0-4dc9-8609-cbaedde9344c/states", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.177755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0a7d911d-7671-4167-9978-5dc6ee60378f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d31eb417-6235-44b1-8cad-56a6bcd79d4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-779b436e-89ed-40e5-a3ed-b3a8b04af2bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-977c01cc-365e-4386-b698-0b7cdfee70ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.044516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_id', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-477363ce-6fd6-492e-a50d-da404b0233c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.051039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-61102931-1488-4795-8522-e60b4f0eaa0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.100681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-38b49ac2-f33b-4acb-8c1a-4baa5a1fb614 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.051484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3252777f-a221-47bc-bca8-0f873836939d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:28.890939+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.088104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-beabc946-4558-43f1-a440-a91aed432d2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:28.855309+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.036217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-581593df-280c-4c14-bab6-44dae6b162ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.171292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-710066e7-1be9-4e9e-91f1-73df045608d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a8ca497f-dd63-43f8-a02c-2ada67657443 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-808778aa-ba44-4200-8a49-4d6052845b30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-07cf899e-9fc0-434a-96dd-3f37e72afb69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.118215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0afd8e65-810d-49fd-8f30-45d2db939227 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.070069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19a06ab4-d392-45b0-861e-7f27db065b24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.114548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_uuid', 'op': 'remove'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-44917c88-5ac2-4a45-a3ab-3d2207996213 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.034573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-90ed4bf5-b8a9-4aca-b2cc-c460edf40973 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.051072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cc65083b-a0f9-43f0-99b7-9166b9244682 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.058259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/last_error', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-583433ec-a788-4c90-b46f-e47b6971dc08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /last_error. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.058253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f1f62ce-bef1-4a13-b1eb-a8eaab8827fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "4d4cdb8c-0a67-4c78-a80e-b680ed2b5a0e", "created_at": "2025-05-19T19:09:29.075073+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "0622ee85-7bf3-4c9d-94aa-af5d3ac882bb", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4d4cdb8c-0a67-4c78-a80e-b680ed2b5a0e", "rel": "self"}, {"href": "http://localhost/nodes/4d4cdb8c-0a67-4c78-a80e-b680ed2b5a0e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4d4cdb8c-0a67-4c78-a80e-b680ed2b5a0e/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d4cdb8c-0a67-4c78-a80e-b680ed2b5a0e/ports", "rel": "bookmark"}]}, {"uuid": "d1fd6d9f-816d-4def-90c4-c714dadcf94e", "created_at": "2025-05-19T19:09:29.076472+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "e70a1b3d-a3f8-4b69-beac-8bd11f4bd616", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d1fd6d9f-816d-4def-90c4-c714dadcf94e", "rel": "self"}, {"href": "http://localhost/nodes/d1fd6d9f-816d-4def-90c4-c714dadcf94e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d1fd6d9f-816d-4def-90c4-c714dadcf94e/ports", "rel": "self"}, {"href": "http://localhost/nodes/d1fd6d9f-816d-4def-90c4-c714dadcf94e/ports", "rel": "bookmark"}]}, {"uuid": "46c16f68-d444-4643-a9d0-c7420e0b8b84", "created_at": "2025-05-19T19:09:29.077825+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "5474060b-e858-404b-a951-9dbc5bda3445", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/46c16f68-d444-4643-a9d0-c7420e0b8b84", "rel": "self"}, {"href": "http://localhost/nodes/46c16f68-d444-4643-a9d0-c7420e0b8b84", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/46c16f68-d444-4643-a9d0-c7420e0b8b84/ports", "rel": "self"}, {"href": "http://localhost/nodes/46c16f68-d444-4643-a9d0-c7420e0b8b84/ports", "rel": "bookmark"}]}, {"uuid": "6ea2fd1b-3eeb-41e9-ab18-9c9dc23d7360", "created_at": "2025-05-19T19:09:29.079176+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "264148a8-b073-4064-998b-5dc77e200b47", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "pro perties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/6ea2fd1b-3eeb-41e9-ab18-9c9dc23d7360", "rel": "self"}, {"href": "http://localhost/nodes/6ea2fd1b-3eeb-41e9-ab18-9c9dc23d7360", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6ea2fd1b-3eeb-41e9-ab18-9c9dc23d7360/ports", "rel": "self"}, {"href": "http://localhost/nodes/6ea2fd1b-3eeb-41e9-ab18-9c9dc23d7360/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.062496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'rescue_password': 'password'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2ee754d9-6bfc-4e87-88c5-693e8e66fbcb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.054429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=8b689b60-8ed4-4f2d-8d7a-e49903624327 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3dc1635e-caac-404a-a768-6f6228c8d606 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "80199178-c72d-4654-b775-59ad39e845ae", "created_at": "2025-05-19T19:09:29.146607+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "8b689b60-8ed4-4f2d-8d7a-e49903624327", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/80199178-c72d-4654-b775-59ad39e845ae", "rel": "self"}, {"href": "http://localhost/nodes/80199178-c72d-4654-b775-59ad39e845ae", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/80199178-c72d-4654-b775-59ad39e845ae/ports", "rel": "self"}, {"href": "http://localhost/nodes/80199178-c72d-4654-b775-59ad39e845ae/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.068830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-355224c7-a248-451d-b3f8-8fbc168d09b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-9b86cc4e-f332-4a60-b475-329228fef96d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-1b59a7a4-f58d-477a-9394-c3d2ce91c16a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.037795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07166be1-a048-4e6a-b575-f6ffa4e06330 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.210092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'fc2bb0db-489d-4bb3-970e-d9fc19e32970', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c2018bb-cfa6-4402-93ac-d2a8824559a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:29.075350+00:00", "updated_at": "2025-05-19T19:09:29.197227+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "fc2bb0db-489d-4bb3-970e-d9fc19e32970"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.059127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1667c792-43af-49ab-91c2-4f1aeed64713 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "power_interface": null, "raid_interface": null, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.189425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/driver', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4551d27d-26b0-4f68-a32e-3ff36f003175 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'driver' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.034488s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-667d9d88-5d6b-49bf-b482-a5cea1a8cf81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail [0.048868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-847773a6-fc98-4ca6-858c-850021db8823 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.155228s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-27f350d3-4e41-49b8-9533-f1a5fd016d93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-251d7c19-2628-4726-8a61-c94dc8be65a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-eb581507-f581-46ba-9f94-4049eda3b10c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2689328f-05ae-4119-b64a-b1ba27fb9c06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-926562f8-9f8d-4ce7-a9c2-5120e2169e6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.152278s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a80febb-8d45-489f-911c-6618b43d78e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:29.303587+00:00", "updated_at": "2025-05-19T19:09:29.365616+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.119725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b716102-3201-45b3-b02f-f825349779c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:29.372656+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.098295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2f1cc268-021f-4e9e-8602-c0b8f3a047c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.139994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'provide', 'clean_steps': 'foo'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d53dd353-d7da-4867-b292-7bb26e36641d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types , for clean_steps: foo\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.047671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7fdd6ce3-6702-498f-991d-b0a6cb63e987 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.049149s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ec50e38d-a6e1-4120-8c7b-24365c3c714d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.296185s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=automated_clean WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f45ab35-c3b3-4a86-b593-d037467e5d72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"automated_clean": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.120929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted', 'configdrive': 'foo'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d0e018f7-95e7-425f-a906-42cfaa9d8965 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string [0.145334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': '', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbfe0fab-ac0a-4728-99fc-90ef7b2bd50f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.050484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e0cd8775-887e-4a0d-9921-9ec0e1011f88 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"boot_device": "pxe", "persistent": true} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.120083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55bcec05-921b-4144-9a44-0d86cdf853bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:29.583205+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.037506s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cb84ced-e18f-43cd-8d65-b9bafd951453 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"boot_device": "pxe", "persistent": true} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.069864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5de606f-09ab-4ded-9df4-943d5c812c62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.115932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-c96219ff-6dbe-4fc0-a686-bc8afcb38e40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.045023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3968c2ff-0325-4482-8a84-74a44cea41b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.098163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/console_enabled', 'op': 'replace', 'value': True}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-034a78ad-5024-4667-9a3a-f4094fbb9b35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /console_enabled. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.052461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6cf25c32-989a-418a-b192-9bd52cb8ede7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "0a2df250-5e76-4b5c-992c-f6f471202070", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/0a2df250-5e76-4b5c-992c-f6f471202070", "rel": "self"}, {"href": "http://localhost/nodes/0a2df250-5e76-4b5c-992c-f6f471202070", "rel": "bookmark"}]}, {"uuid": "e8fb6d54-3899-4fe7-84bd-c9d9b4206463", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/e8fb6d54-3899-4fe7-84bd-c9d9b4206463", "rel": "self"}, {"href": "http://localhost/nodes/e8fb6d54-3899-4fe7-84bd-c9d9b4206463", "rel": "bookmark"}]}, {"uuid": "8d9ea45d-d3d4-4d46-993b-b9490227ecbf", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/8d9ea45d-d3d4-4d46-993b-b9490227ecbf", "rel": "self"}, {"href": "http://localhost/nodes/8d9ea45d-d3d4-4d46-993b-b9490227ecbf", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.049178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61340f71-5809-4391-8929-ac8b111d9258 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "6682106f-90a8-4cb2-b242-9f66f78cf96d", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/6682106f-90a8-4cb2-b242-9f66f78cf96d", "rel": "self"}, {"href": "http://localhost/nodes/6682106f-90a8-4cb2-b242-9f66f78cf96d", "rel": "bookmark"}]}, {"uuid": "c72ecc7a-fdac-4b18-8c18-0f931e37e986", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/c72ecc7a-fdac-4b18-8c18-0f931e37e986", "rel": "self"}, {"href": "http://localhost/nodes/c72ecc7a-fdac-4b18-8c18-0f931e37e986", "rel": "bookmark"}]}, {"uuid": "3b4a5507-b0d2-40ea-ae9a-5562211ebf3e", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/3b4a5507-b0d2-40ea-ae9a-5562211ebf3e", "rel": "self"}, {"href": "http://localhost/nodes/3b4a5507-b0d2-40ea-ae9a-5562211ebf3e", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.130163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-53df24ac-4531-4269-89e3-a7c5c8cd5c2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.152412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c85eda1f-53c1-499b-938a-8439a6f53924 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /power_state. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova [0.100229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid,power_state,target_power_state,provision_state,target_provision_state,last_error,maintenance,instance_uuid,traits,resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5213a820-340b-4f1d-97d2-ee76ab086288 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "269f1c6c-a51d-4fed-91d1-984f592f5304", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "80e24c01-e0c7-452d-88e3-f4fa1e16049b", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/269f1c6c-a51d-4fed-91d1-984f592f5304", "rel": "self"}, {"href": "http://localhost/nodes/269f1c6c-a51d-4fed-91d1-984f592f5304", "rel": "bookmark"}]}, {"uuid": "9739e3ce-1b8a-428c-9689-6cf4cf758674", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "ab1a8684-951e-4c24-8e2c-04503c04ad46", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/9739e3ce-1b8a-428c-9689-6cf4cf758674", "rel": "self"}, {"href": "http://localhost/nodes/9739e3ce-1b8a-428c-9689-6cf4cf758674", "rel": "bookmark"}]}, {"uuid": "c2ebc1d3-68ef-45e4-bffb-2fce4294068b", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "8bc09426-3667-4674-9d8c-a1fa78ea9505", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/c2ebc1d3-68ef-45e4-bffb-2fce4294068b", "rel": "self"}, {"href": "http://localhost/nodes/c2ebc1d3-68ef-45e4-bffb-2fce4294068b", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.116723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'configdrive': '\nw7FJYV8ywqx+wqnCpwPCoXHDisO6HMO2w4nDsBBJccOvXsKUMsO9OcOPCQLCnMKoPSFLwp\nDDhj7Ck8KqwprDpcKWw6XChsOMw5lSEcKUZcO0PUJiWcK4wq0owr4ye8Ozw67ClzXDmsO7\nUxvCpjnCkFQgw73Ch8Kaw5HCicKlXMOvUnDDvg5uwoFkwqDCl8KAEWwCbUQvw7I5JcKUw7\nVbKl3Di8O4LMKuwrHChMOBw5plaVJKci04w7fCgcOgVhkwwoLCgilxwqTCpDNCGzdNw5N6\nwpgAw6jDn8ODLBBlMGcawrEZwr3DiVPDtMKTwpcxwrpBwrrDtcOEw5YTw7MMwqnCsMKqwp\nPCkMK1wpTDssKfwrDCscOsEEDDo8OAw5DCqsKKGBRqwqPDqx7Cg8KkDcOkwoIuwo/CgcK0\nZcKNf3N7wqIYQcKgQDnCq8KFw6DCvMOwWAHChMO3w5xWb8O3wq7Dn8K4eXgWw742woUqw5\n/DvcK+ScKcX8KzwprCuD3DgcOsC8Oqwp0CwqB8TsOIHsKVwozCv8O+w4LCmE9GCMORw63D\nicOQw4ZFasOzw4Uvw7NSw6Qbw77DkBgkwo4COcOzOWLClRNQXcOHwojCrsOdHMKIw6nDuM\nORHMKeXMO8fcK0By7CiMKwHSXCoEQgfQhWwpMdSsO8LgHCjh87DQc= '} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-790e8c00-e89a-4bcf-b72f-a154854aeb2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.079122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db1c7d4b-306d-420c-be17-2715cc05ab1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/a3cd918f-da1b-455e-a16b-7a43dac68b62", "rel": "self"}, {"href": "http://localhost/nodes/a3cd918f-da1b-455e-a16b-7a43dac68b62", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/dd270ad9-14a1-4524-b77f-c38e64d241cf", "rel": "self"}, {"href": "http://localhost/nodes/dd270ad9-14a1-4524-b77f-c38e64d241cf", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=dd270ad9-14a1-4524-b77f-c38e64d241cf"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.067069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'configdrive': {'user_data': 'foo'}} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-fa678c6d-a2b8-4f4d-8502-01f2578ed942 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.060686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af761782-8459-441a-ab37-2a2fd4c44cf6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.156393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/maintenance', 'op': 'replace', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a066fdb-976e-461c-ae24-a790fd2b3c59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:29.993571+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.056172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'configdrive': {'user_data': {'serialize': 'me'}, 'meta_data': {'hostname': 'example.com'}, 'network_data': {'links': []}, 'vendor_data': {'foo': 'bar'}}} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-19e6436d-6e36-44d7-b855-dbf1016067b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.034378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4d2b963d-09e4-4e9a-95f4-03b62c6daae0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.050996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'configdrive': ['aabb']} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fd8f7192-e576-4e9a-b065-c75414287a4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types , , for configdrive: ['aabb']\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.044857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66a3cf9d-a5b5-401d-a83c-a489083f83ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"conductor_group": "", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.492108s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-86f3e0f2-3a73-4005-b817-096ff5931035 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.113402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/node-57.1 WITH [{'path': '/maintenance', 'op': 'replace', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a577e58-2260-44ad-bdb2-663874bc5aba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:30.120131+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.069309s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-21d1af3f-0d3a-4a25-b9af-c11696c4cc77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.089296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'configdrive': '{"meta_data": '} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f051804f-83d2-4915-96b8-f10eeb890999 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid configdrive format: it is neither a JSON, nor a URL, nor a base64 string\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.052025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8baba939-8d23-43ed-910d-d84f28885e6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": true, "console_info": {"test": "test-data"}} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.102000s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/2e8d55cd-1bad-48bf-b6ce-300c501c7ca8 WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-340e77f2-9580-4791-a961-b3e7e00555a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url [0.066796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'configdrive': 'http://example.com'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-e6b3b249-d965-40be-8ad2-ea6a7d1857e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.117785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/chassis_uuid', 'value': 'eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-44e92794-a8ab-4e92-87e7-4c6e467a0be9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.048258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6231bb16-d12d-4069-a4c3-3164a2d82efc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"console_enabled": true, "console_info": {"test": "test-data"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.045143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0ad719fc-b259-4bb2-b748-73db07155b99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /provision_updated_at. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.045896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f50bf6d-8dd5-4cde-a762-14df0a52b5b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": false, "console_info": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps [0.079960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'deploy_steps': [{'interface': 'bios', 'step': 'factory_reset', 'priority': 95, 'args': {}}]} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-b6eb6efc-aef5-4ce8-8e4b-8f61357fb3a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.064274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active', 'deploy_steps': [{'interface': 'bios', 'step': 'factory_reset'}]} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-445714a1-d8be-4198-8215-2a35bd6fb631 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.69\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type [0.171952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/5656240e-9a80-4188-b56b-9092d016d614 WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40bd0991-3fd3-4bc1-a080-5a84b831f34d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "5656240e-9a80-4188-b56b-9092d016d614", "created_at": "2025-05-19T19:09:30.365879+00:00", "updated_at": "2025-05-19T19:09:30.459429+00:00", "address": "bb:bb:bb:bb:bb:bb", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/5656240e-9a80-4188-b56b-9092d016d614", "rel": "self"}, {"href": "http://localhost/ports/5656240e-9a80-4188-b56b-9092d016d614", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.099992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-71ae058a-f897-4884-a0e6-b8f48dff40bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.053866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d99257cf-ae5c-4405-af0d-b0d0b8f078bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.065017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-899f760e-5962-4890-af45-4d6f4ab8d28a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.069490s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5915df05-f60f-485c-a729-21a1c26c99bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.066671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild', 'configdrive': 'foo'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-4219be5d-3fd7-4986-938f-573cc0243e2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.047419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b4787372-2384-4e33-ab02-b3e77e705aee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.072584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ddff4401-4ebe-4fb1-ae82-c3956849e392 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.066809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/address', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-34527550-3fbd-4682-b19f-35a972736b66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'address' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.105184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild', 'deploy_steps': [{'interface': 'bios', 'step': 'factory_reset', 'priority': 95, 'args': {}}]} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-44abe6ea-b214-4a6d-86ee-ddfe51e7999d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.094765s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-290740f8-d131-49c9-9be3-c02ef4d0eb08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"description": "useful piece", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.363367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0a1a1a7-7543-4e24-bc7f-3df3ec7efffb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ac915e8-084c-4b6b-bbc9-d2e93375bafb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instan ce_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f44e4b0c-64ed-43a0-9a98-7a4baac0f5c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/93 8cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b9a1d3d-61c7-4475-8963-ce2a446cff47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/ma nagement_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bebf5ed9-002a-43e7-9cbf-69c52f38b9f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f756e159-b8c3-4bab-a0c7-532ac9c925b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "b ar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18b0b7d1-acca-4120-8024-1a18dee7bb87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} PATCH /v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5451327-7b0c-4059-a45d-a6142ac55eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "938cb2dc-86fe-443f-ab50-4a49b51e13ee", "created_at": "2025-05-19T19:09:30.406801+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/938cb2dc-86fe-443f-ab50-4a49b51e13ee/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.095579s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild', 'configdrive': 'foo'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a2e08e9b-f4be-467b-8571-5a3e2cf541a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.060504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True WITH [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-30aa5e00-38e0-4206-9549-978d91cd3c92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_disable_power_off_fields [0.077082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=disable_power_off WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3dbbe960-de1d-4983-b1fd-42ce464a65e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"disable_power_off": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.150453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cec0b842-3c7e-4d56-b83e-996110bdfd06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:30.697086+00:00", "updated_at": "2025-05-19T19:09:30.749112+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35cb077f-11e8-4437-9537-82a3b4ad9b66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:30.697086+00:00", "updated_at": "2025-05-19T19:09:30.802922+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.078178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-4be77dab-94ad-42c3-afc3-6e583d92244a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.063032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True WITH [{'path': '/name', 'value': 'new name', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e76bcb08-9208-46b9-a8ff-92c2dd46130a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.076526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cd6ccb2-3204-49dd-a6e1-3d78d3e053b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"state": "on"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.051140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f782bc06-7016-49b2-9c57-ceee6a9c23dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.050335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-4a545b4e-1375-4660-b30b-0b1e0b7ec685 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.056929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5853f6de-b796-4e97-a3f6-906957a50a83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.092340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927 WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4fb24ee-c427-471e-8f0e-17178d025bd0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "802334d8-2d71-44b4-81eb-dbab41e2c927", "created_at": "2025-05-19T19:09:30.887917+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927", "rel": "self"}, {"href": "http://localhost/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/ports", "rel": "self"}, {"href": "http://localhost/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/states", "rel": "self"}, {"href": "http://localhost/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/volume", "rel": "self"}, {"href": "http://localhost/nodes/802334d8-2d71-44b4-81eb-dbab41e2c927/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy [0.084858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'undeploy'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-6da31112-d6c4-47e3-aa86-d5508ae33c34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.117899s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d34af001-8aec-4061-b46d-c845cc3e378e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning [0.086481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e486856-83ea-4649-93c3-239f5d7f450b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"state": "on"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_unprovision_after_service_failed [0.054953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-011c21b4-47f7-418e-b547-c5d70d86d75f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field [0.080557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=lessee WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-160df133-ebc4-42b5-a6c5-7ac4347c83c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"lessee": "some-lucky-project", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.049847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT Response: 204 No Content Openstack-Request-Id: req-8b1f8f86-a92f-413a-938f-2d1e7595a31c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.134521s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3593056b-d9da-48e6-ac66-c5729be08db8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:31.019492+00:00", "updated_at": "2025-05-19T19:09:31.111057+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.047685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-322bb84b-19be-474c-893a-724f537f1df7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.077125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5cd6e083-d200-42d5-a503-947721067e49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"network_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.050716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-963cbd00-16c2-426e-a2fd-6a157215307e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.272789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2206c91a-a6fc-4465-a343-90e6d381038b WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-612a9a6a-b530-48fd-abb4-9cf1fec0ef7a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2206c91a-a6fc-4465-a343-90e6d381038b", "created_at": "2025-05-19T19:09:31.163096+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/2206c91a-a6fc-4465-a343-90e6d381038b", "rel": "self"}, {"href": "http://localhost/nodes/2206c91a-a6fc-4465-a343-90e6d381038b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/ports", "rel": "self"}, {"href": "http://localhost/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/states", "rel": "self"}, {"href": "http://localhost/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/volume", "rel": "self"}, {"href": "http://localhost/nodes/2206c91a-a6fc-4465-a343-90e6d381038b/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.084663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'op': 'remove'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-33c36393-7ee8-4ec2-a383-a09af2fd9ce3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.075685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9c005f3e-a6ea-458b-8e0d-847898473b07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.062735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'op': 'remove'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9aa4ee37-eddd-485d-9bd5-21be43af0cd8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.095010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/feb446fd-c8ba-4293-810b-93dda00205f3 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-172871f6-c7e1-445e-bc12-f7d3a03b35ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "feb446fd-c8ba-4293-810b-93dda00205f3", "created_at": "2025-05-19T19:09:31.254119+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": true, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": "power off", "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/feb446fd-c8ba-4293-810b-93dda00205f3", "rel": "self"}, {"href": "http://localhost/nodes/feb446fd-c8ba-4293-810b-93dda00205f3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/feb446fd-c8ba-4293-810b-93dda00205f3/ports", "rel": "self"}, {"href": "http://localhost/nodes/feb446fd-c8ba-4293-810b-93dda00205f3/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.041379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ccd652a5-5a2e-440a-8e48-ce8100f4657b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.104828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4f6d07d-3e92-4228-834f-23c283a3707d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": []} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6fea0e31-f73e-48f3-b93b-07f5e787088d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": [{"uuid": "858bf7c4-ab44-44b7-ae35-0a2a32057622", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/858bf7c4-ab44-44b7-ae35-0a2a32057622", "rel": "self"}, {"href": "http://localhost/nodes/858bf7c4-ab44-44b7-ae35-0a2a32057622", "rel": "bookmark"}]}, {"uuid": "a3dd77cd-fc92-4d13-b96b-5dd6b1781377", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a3dd77cd-fc92-4d13-b96b-5dd6b1781377", "rel": "self"}, {"href": "http://localhost/nodes/a3dd77cd-fc92-4d13-b96b-5dd6b1781377", "rel": "bookmark"}]}]} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c0dd85b-ed91-489a-b619-af6a6709954e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": [{"uuid": "a3dd77cd-fc92-4d13-b96b-5dd6b1781377", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a3dd77cd-fc92-4d13-b96b-5dd6b1781377", "rel": "self"}, {"href": "http://localhost/nodes/a3dd77cd-fc92-4d13-b96b-5dd6b1781377", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.089180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/da35b48c-71ed-49b6-9874-55790f10cce4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc1db476-7a0f-4d93-9642-2322d11364fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "da35b48c-71ed-49b6-9874-55790f10cce4", "created_at": "2025-05-19T19:09:31.350914+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": "power off", "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/da35b48c-71ed-49b6-9874-55790f10cce4", "rel": "self"}, {"href": "http://localhost/nodes/da35b48c-71ed-49b6-9874-55790f10cce4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/da35b48c-71ed-49b6-9874-55790f10cce4/ports", "rel": "self"}, {"href": "http://localhost/nodes/da35b48c-71ed-49b6-9874-55790f10cce4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.095983s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b0c6a887-3130-4ab9-af6c-92e168ce9d58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.101088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-280d5301-dafa-4f26-8506-ba4016ec0403 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "095e00c9-e309-4f06-ac2a-31588b4bb410", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410", "rel": "self"}, {"href": "http://localhost/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410", "rel": "bookmark"}]}]} GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3402a203-302d-449a-a24c-ab8e8998d748 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "c2c1a530-308c-4d4d-bc01-2cfff849a640", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640", "rel": "self"}, {"href": "http://localhost/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7882169-8672-40bc-b35c-589cfa838ba3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "095e00c9-e309-4f06-ac2a-31588b4bb410", "created_at": "2025-05-19T19:09:31.385730+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "group1", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410", "rel": "self"}, {"href": "http://localhost/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/ports", "rel": "self"}, {"href": "http://localhost/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/states", "rel": "self"}, {"href": "http://localhost/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/volume", "rel": "self"}, {"href": "http://localhost/nodes/095e00c9-e309-4f06-ac2a-31588b4bb410/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-930d9006-5ac4-4565-b 5ca-448ce0de0819 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "c2c1a530-308c-4d4d-bc01-2cfff849a640", "created_at": "2025-05-19T19:09:31.387500+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "group2", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640", "rel": "self"}, {"href": "http://localhost/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/ports", "rel": "self"}, {"href": "http://localhost/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/states", "rel": "self"}, {"href": "http://localhost/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/volume", "rel": "self"}, {"href": "http://localhost/nodes/c2c1a530-308c-4d4d-bc01-2cfff849a640/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.098758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-847ea923-102c-420d-bacd-89c2600b0a15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "111d1a7a-a1d7-4f5b-a402-524be3b5e35e", "created_at": "2025-05-19T19:09:31.439237+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e", "rel": "self"}, {"href": "http://localhost/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/ports", "rel": "self"}, {"href": "http://localhost/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/states", "rel": "self"}, {"href": "http://localhost/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/volume", "rel": "self"}, {"href": "http://localhost/nodes/111d1a7a-a1d7-4f5b-a402-524be3b5e35e/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.072511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-51ded7c2-8382-4f90-8b3f-f1e08937036a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6bd493fc-f64c-48f6-83d6-0ed7acf4b326 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.125669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/local_link_connection/switch_id', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40329bdf-6ba0-4f20-a8e2-fc485adc170b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:31.493933+00:00", "updated_at": "2025-05-19T19:09:31.541300+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.354949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ce6a7a65-5005-4971-a02c-7e955431283a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.054358s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/9fb69a46-8722-4127-ba8e-164852722afb WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d45d1aed-8b70-4330-b781-e54af7c24c55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.055510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e5606015-646f-43ac-8923-6c4e4c48a373 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false [0.051042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ef950fdc-d9b8-42a4-9463-1b3bef873742 WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-371cadb3-42e9-421a-bb2f-1915357a2e2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.103281s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0384b215-e4b1-4e59-bc72-baa97eb053a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": []} GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb797362-9428-41ab-a2f3-ab1f6401d57e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": []} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-398d384f-c521-476b-b93b-9e9e9b808c41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.059637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/node-57.1 WITH [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b16e5271-909c-45a4-9901-f04068164b77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.060087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6558ed21-20b5-424a-bd0e-d2f302658807 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid secure_boot None requested for node. Allowed secure_boot states are: True, False) \", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.162772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72a6152e-7557-4bf4-b702-ceed76c0fb4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:31.572343+00:00", "updated_at": "2025-05-19T19:09:31.688933+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo [0.077301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'boo!'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df30b7c9-0436-416b-975e-6d1764853531 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value 'boo!', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.123973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-41704637-b76b-4d42-b806-4b56947b09a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.49\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr [0.043449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': ''} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4111c0b8-2fd7-4a38-8af8-9a615691d7fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.138008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1cf7bb2-a47c-43d4-bef3-3799db145625 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "336b31b9-a66e-4ff6-93d2-8015d27e5250", "created_at": "2025-05-19T19:09:31.715599+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250", "rel": "self"}, {"href": "http://localhost/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/ports", "rel": "self"}, {"href": "http://localhost/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/states", "rel": "self"}, {"href": "http://localhost/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/volume", "rel": "self"}, {"href": "http://localhost/nodes/336b31b9-a66e-4ff6-93d2-8015d27e5250/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.108345s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-da3c6d30-c71c-4014-9a09-db9bdcdccdd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver [0.059345s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': False} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5f2a73ad-4221-4057-80f4-7b4955bf9112 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.111809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1a7ef40-9c25-47a6-8478-68d30a679d06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"nodes": [{"uuid": "cfc18692-efbd-4948-b847-894d06821a77", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cfc18692-efbd-4948-b847-894d06821a77", "rel": "self"}, {"href": "http://localhost/nodes/cfc18692-efbd-4948-b847-894d06821a77", "rel": "bookmark"}]}]} GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dda1a691-bad5-4951-b010-d4685a47fe66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"nodes": [{"uuid": "dae62faa-427c-4574-af81-37fc6e1a967d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/dae62faa-427c-4574-af81-37fc6e1a967d", "rel": "self"}, {"href": "http://localhost/nodes/dae62faa-427c-4574-af81-37fc6e1a967d", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.038661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': False} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-6771d825-eba1-4560-aab5-175dbff0626a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.107896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4bc7eaea-9c13-4341-b1da-a9673dd04ac6 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-93dbabf7-7b86-462f-86c5-398c929c9bfc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.045643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 0} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-a7bd7ed8-3191-4146-a1c0-4dac9bb77c40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.116056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-888cd941-c401-4967-b67d-6808cbe2359e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:31.867795+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.102665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c4119e3-3e5e-4c50-96bc-84546b7aa13a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": [{"uuid": "d6ab3e56-5c7b-4199-bb21-3ce95f646d9a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d6ab3e56-5c7b-4199-bb21-3ce95f646d9a", "rel": "self"}, {"href": "http://localhost/nodes/d6ab3e56-5c7b-4199-bb21-3ce95f646d9a", "rel": "bookmark"}]}]} GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ba0684d-63ab-4c68-abca-2d36ccadff29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": [{"uuid": "441ed2de-53fb-439e-b897-68e00ae3e8d4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/441ed2de-53fb-439e-b897-68e00ae3e8d4", "rel": "self"}, {"href": "http://localhost/nodes/441ed2de-53fb-439e-b897-68e00ae3e8d4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two [0.040923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 2} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae82a91d-b2cf-432d-943e-fb5ea410381f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '2', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.068852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c459f404-6ba9-48f7-b5f2-697ba78e15e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.067693s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5c329530-9292-4bec-9e60-9df730346be3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.073057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4277f8fc-baa6-4dbc-a68c-0d5454f8869b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.094670s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ac65c17-f80d-4519-9d9a-53eb4f46289d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:32.049996+00:00", "updated_at": "2025-05-19T19:09:32.095931+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.207858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1723d270-b6e0-42ae-9f2d-614b700cab28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "1ebf32f1-7990-4ebc-be11-a31e3b30c02b", "created_at": "2025-05-19T19:09:31.997684+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b", "rel": "self"}, {"href": "http://localhost/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/states", "rel": "self"}, {"href": "http://localhost/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ebf32f1-7990-4ebc-be11-a31e3b30c02b/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.091093s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': True} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-8876ee79-1ea6-43a0-9167-2349fd850f97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.046572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ddde6f06-ae13-4a80-9607-946e278ade2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.149422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49cf92d1-a505-4a81-a6c0-bd22d961b6a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "a6ab6e62-98a6-4404-8284-ed7247bee496", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496", "rel": "self"}, {"href": "http://localhost/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496", "rel": "bookmark"}]}]} GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-082543f5-1c05-4603-a37f-0b82e56fee75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "7f26dec5-617d-4420-a958-5dd89133d7b6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6", "rel": "self"}, {"href": "http://localhost/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f64c1e2-081d-4fb9-b9b3-c1cc9e8cd43a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "a6ab6e62-98a6-4404-8284-ed7247bee496", "created_at": "2025-05-19T19:09:32.098484+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": "power failure", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496", "rel": "self"}, {"href": "http://localhost/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/ports", "rel": "self"}, {"href": "http://localhost/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/states", "rel": "self"}, {"href": "http://localhost/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/volume", "rel": "self"}, {"href": "http://localhost/nodes/a6ab6e62-98a6-4404-8284-ed7247bee496/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-202d28a2-4322-4f1d-82b2-4d73b5aa827d X-Openstack-Ironic-Api-Maximum-V ersion: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "7f26dec5-617d-4420-a958-5dd89133d7b6", "created_at": "2025-05-19T19:09:32.099930+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": "clean failure", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6", "rel": "self"}, {"href": "http://localhost/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/ports", "rel": "self"}, {"href": "http://localhost/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/states", "rel": "self"}, {"href": "http://localhost/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/volume", "rel": "self"}, {"href": "http://localhost/nodes/7f26dec5-617d-4420-a958-5dd89133d7b6/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.051084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-03394af1-c9da-46de-a484-8bf472ea9f31 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.109746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/077db860-eca3-4336-8538-e32e2bc06a1a WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812 3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e5c6f86-2dd1-48d2-a372-8dfdc366d2ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.094102s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 1} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-74e0e08b-1688-4a36-a2dc-70e2bee529a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.105935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-28ed2d75-ecde-4619-83aa-3af59147736b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"} GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4f4dfa1a-8add-46d0-9a87-5d3c5342d679 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.106366s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'f0dc00b2-ca44-47b3-a7dd-b40ad7ce80bb', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40818b10-77f1-4d6b-8f72-30bc15d6617d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:32.227601+00:00", "updated_at": "2025-05-19T19:09:32.300967+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "f0dc00b2-ca44-47b3-a7dd-b40ad7ce80bb"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service [0.120528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'service', 'service_steps': [{'interface': 'deploy', 'step': 'meow'}]} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-b7329597-a4e6-44c6-9c5e-c83883d8840d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.87 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.061108s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '871d7305-ae74-41b0-8134-d083e7733f2b', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d003f15a-38ad-4a33-9681-50c604ad597b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.105547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f7fd9f26-0857-4d5b-8833-a32c70f35dda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"} GET /v1/nodes/detail?fault=somefake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b65c85a9-b93b-409c-a5b0-8f5d935667d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.055202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'service'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-77ab261d-dfc2-4db0-b8ec-a68ab1ce8001 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.87 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"service_steps\\\" is required when setting target provision state to service\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks [0.060285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'service', 'runbook': 'CUSTOM_1'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-7b527984-20a2-48fd-a4f7-b7ec83a8e894 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.097834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ee744ce-d4a4-4f7e-b0f7-29c84671fedc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.270682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/driver', 'value': 'bad-driver', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5fef07cf-ccaf-4977-8731-b2405c9b7744 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.141061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'ada1bee8-ac5b-4a13-9c50-411c4b7fdb5d', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-192dfc77-8080-4858-b66e-55a5cdadb28e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:32.413802+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks_unapproved [0.068653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'service', 'runbook': 'CUSTOM_1'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-60326f09-0cb8-422b-82e4-c711bd6da47b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.063484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d06bbe9e-01a0-4298-934e-00b7248f1b68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.042606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content Openstack-Request-Id: req-f97ca5b7-8474-417b-a884-d0daf0bc9536 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.045095s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content Openstack-Request-Id: req-40eecdd0-731c-4026-92f1-63a3a93897ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.078897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bde4642f-7a76-40fc-82ef-19b6733a0b19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.040267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40924ec7-255a-4381-9c05-ee4f31fec540 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.060421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f63fed1d-cf45-48a7-b925-59c9b05da458 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.192582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7d78cb5c-ff7c-4a93-89e3-37a3b5688d44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee [0.064673s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b98f0f59-4b03-47b9-b99f-17b844e2a9a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "32bc7285-2810-4dfa-aa9a-82c6a5973572", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572", "rel": "self"}, {"href": "http://localhost/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572", "rel": "bookmark"}]}]} GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16878fbf-0754-4fbd-a2ec-263bf43610b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "5887a6b9-0953-4a0d-8f97-bd4682459e95", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95", "rel": "self"}, {"href": "http://localhost/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1403babe-8073-4d00-baf4-1429f656308d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "32bc7285-2810-4dfa-aa9a-82c6a5973572", "created_at": "2025-05-19T19:09:32.708674+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "project1", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572", "rel": "self"}, {"href": "http://localhost/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572/ports", "rel": "self"}, {"href": "http://localhost/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572/states", "rel": "self"}, {"href": "http://localhost/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/32bc7285-2810-4dfa-aa9a-82c6a5973572/volume", "rel": "self"}, {"href": "http://localhost/nodes/32bc7285-2810-4dfa- aa9a-82c6a5973572/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de4b16d2-66b8-4fe3-8ebc-22c316586600 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "5887a6b9-0953-4a0d-8f97-bd4682459e95", "created_at": "2025-05-19T19:09:32.710099+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "project2", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95", "rel": "self"}, {"href": "http://localhost/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/ports", "rel": "self"}, {"href": "http://localhost/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/states", "rel": "self"}, {"href": "http://localhost/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/volume", "rel": "self"}, {"href": "http://localhost/nodes/5887a6b9-0953-4a0d-8f97-bd4682459e95/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.248960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'a29fbd40-e214-41e0-9569-db263d2af60b', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '3c5fe2d2-fd00-4726-93e2-2e3e1ac691b9', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84686b7e-eb9f-4ab9-9826-98f27186a887 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:32.595428+00:00", "updated_at": "2025-05-19T19:09:32.750952+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "3c5fe2d2-fd00-4726-93e2-2e3e1ac691b9"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.083212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True WITH {'boot_device': 'pxe'} GOT Response: 204 No Content Openstack-Request-Id: req-eef4a471-5d79-413c-96b6-016cf7926a20 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.077581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-610a4de0-2cdb-446a-a51d-61d06c06ed65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"} GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-75a36a40-39c2-45d9-8d51-e0510bae1d10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.055611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=blah WITH {'boot_device': 'pxe'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-24d8ecd4-f5eb-4b1c-969d-1d044695c081 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid persistent: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_bios_boot_mode [0.124544s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ WITH [{'path': '/properties/capabilities', 'value': 'boot_mode:bios', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4a541cc9-9115-4cac-9530-1232af88e077 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.058988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/states/console WITH {'enabled': 'true'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states/console Openstack-Request-Id: req-5a82fe10-72de-4554-a17b-fba4bc1b3ebb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.132534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ef2ca56-9dd4-4cb3-be45-858ea828ac3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:32.822793+00:00", "updated_at": "2025-05-19T19:09:32.891804+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_uefi_boot_mode [0.082611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ WITH [{'path': '/properties/capabilities', 'value': 'boot_mode:uefi', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-77fdcb23-dcfb-4faf-aac2-5cb308bd9d5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.048561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/states/console WITH {'enabled': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-40f681cf-10c7-414b-b181-cebd569f14f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.045885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/pxe_enabled', 'value': False, 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2e6474ef-05c2-4c3c-8b7e-636945f9791b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_invalid_boot_mode [0.046441s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.056003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-36af2ff4-1da6-4981-af94-277f184bf648 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.071352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': 'invalid-value'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7fc3333f-52b1-4a71-ae56-6407e8698c5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid enabled: Unrecognized value 'invalid-value', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.183813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae82a8ed-8ee4-48ca-999f-7adf22ff0c5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "5d11f507-dbd9-470d-b7fc-0c257ba9b286", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286", "rel": "self"}, {"href": "http://localhost/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286", "rel": "bookmark"}]}]} GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b625743-3d87-45e5-aa91-5721110aa7e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "9602ae47-283d-4e21-8467-ce2700b7a4c6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6", "rel": "self"}, {"href": "http://localhost/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac3368ac-be4b-434d-90fc-1781f49c2a1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "5d11f507-dbd9-470d-b7fc-0c257ba9b286", "created_at": "2025-05-19T19:09:32.913798+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": "fred", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286", "rel": "self"}, {"href": "http://localhost/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/states", "rel": "self"}, {"href": "http://localhost/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d11f507-dbd9-470d-b7fc-0c257ba9b286/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-878d9d33-7d1b-40bd-b706-cf5a8af3d9eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "9602ae47-283d-4e21-8467-ce2700b7a4c6", "created_at": "2025-05-19T19:09:32.915391+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": "bob", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6", "rel": "self"}, {"href": "http://localhost/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/ports", "rel": "self"}, {"href": "http://localhost/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/states", "rel": "self"}, {"href": "http://localhost/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/volume", "rel": "self"}, {"href": "http://localhost/nodes/9602ae47-283d-4e21-8467-ce2700b7a4c6/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.048143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/52:54:00:cf:2d:31 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-58324682-c688-40e6-8b14-e00bf2290a3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for port_ident: 52:54:00:cf:2d:31\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.054967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a8cab2b6-04a3-4618-8100-6b5886d30f5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: enabled\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.100792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f3bfc3ac-6902-4c9c-a79f-6f5713826d2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cc881daa-fefe-4641-9cc4-e6bf659e9ba2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.066487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': 'true'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c2ad8ae0-2d35-4dc6-bbd4-0629fb735ea1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.112076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd342cb1-e557-4463-bd98-d1c51755c60a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:33.080661+00:00", "updated_at": "2025-05-19T19:09:33.156951+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.046708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': 'false'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-58f968de-da01-4d4c-bbfe-b7a0a7df62cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.097574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a03b3ef5-3c35-4da3-ba33-d380724d280a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"nodes": [{"uuid": "0c52e873-9151-433a-88d6-099543e6957d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0c52e873-9151-433a-88d6-099543e6957d", "rel": "self"}, {"href": "http://localhost/nodes/0c52e873-9151-433a-88d6-099543e6957d", "rel": "bookmark"}]}]} GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3ffaf477-d886-4597-8d51-fef22e7ac8ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"nodes": [{"uuid": "aa34da0a-0c19-408a-bfde-cb367fce7d84", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/aa34da0a-0c19-408a-bfde-cb367fce7d84", "rel": "self"}, {"href": "http://localhost/nodes/aa34da0a-0c19-408a-bfde-cb367fce7d84", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.059256s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': 'true'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-b50f4e73-8195-48ca-a219-030fad477b5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.101344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe3ace2f-9b90-4411-a651-419236d95e26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:33.189507+00:00", "updated_at": "2025-05-19T19:09:33.256149+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.048575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system WITH {'state': 'on'} GOT Response: 204 No Content Openstack-Request-Id: req-7e5472fa-6d54-4914-8f35-3199075286af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.080654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3fa35bdb-a698-4e56-9e5b-90ac89f79308 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value [0.041749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system?state=glow WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7cc56c4a-7c73-415a-9b6f-0742a686c8fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"error\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.095605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7ef37fc7-27dc-4a9d-aaa9-6f84880b5f5d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.111083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b4b07c0-f62f-4e6a-abcf-bb07ea733abd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "5e9deceb-6b33-48bd-8e2f-f65a960a2a06", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5e9deceb-6b33-48bd-8e2f-f65a960a2a06", "rel": "self"}, {"href": "http://localhost/nodes/5e9deceb-6b33-48bd-8e2f-f65a960a2a06", "rel": "bookmark"}]}]} GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac8b2013-75c6-4944-9858-5309f646c62d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "d69bb835-19bc-4d26-b224-3e89ab7ba8b3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d69bb835-19bc-4d26-b224-3e89ab7ba8b3", "rel": "self"}, {"href": "http://localhost/nodes/d69bb835-19bc-4d26-b224-3e89ab7ba8b3", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.050031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/d3fa7d52-9f8c-47d3-88a3-5adaeebe4d6c WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-23b517f2-5dc1-4b41-8ab0-d40f1f5cf227 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port d3fa7d52-9f8c-47d3-88a3-5adaeebe4d6c could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.113092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system WITH {'state': 'on'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-48e46362-ba1c-4109-8781-4b5060195faf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.504612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/57fcc979-a627-414a-8880-64bedc358f1d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71f696b5-6d3e-4e55-9408-002195e3447e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "57fcc979-a627-414a-8880-64bedc358f1d", "created_at": "2025-05-19T19:09:32.993836+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "deploy failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/57fcc979-a627-414a-8880-64bedc358f1d", "rel": "self"}, {"href": "http://localhost/nodes/57fcc979-a627-414a-8880-64bedc358f1d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/57fcc979-a627-414a-8880-64bedc358f1d/ports", "rel": "self"}, {"href": "http://localhost/nodes/57fcc979-a627-414a-8880-64bedc358f1d/ports", "rel": "bookmark"}]} PATCH /v1/nodes/2db380dd-a24b-4ea7-83d7-e1c9ce01601c WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f17f278f-f4c2-4075-b622-cc909722ea13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2db380dd-a24b-4ea7-83d7-e1c9ce01601c", "created_at": "2025-05-19T19:09:33.064331+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspecting", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/2db380dd-a24b-4ea7-83d7-e1c9ce01601c", "rel": "self"}, {"href": "http://localhost/nodes/2db380dd-a24b-4ea7-83d7-e1c9ce01601c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2db380dd-a24b-4ea7-83d7-e1c9ce01601c/ports", "rel": "self"}, {"href": "http://localhost/nodes/2db380dd-a24b-4ea7-83d7-e1c9ce01601c/ports", "rel": "bookmark"}]} PATCH /v1/nodes/86f1b8f3-92fb-4360-9975-c35c5c075b63 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-414c64d9-e987-48de-a900-66a129283e73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "86f1b8f3-92fb-4360-9975-c35c5c075b63", "created_at": "2025-05-19T19:09:33.120437+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspect failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/86f1b8f3-92fb-4360-9975-c35c5c075b63", "rel": "self"}, {"href": "http://localhost/nodes/86f1b8f3-92fb-4360-9975-c35c5c075b63", "rel": "bookmark"} ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/86f1b8f3-92fb-4360-9975-c35c5c075b63/ports", "rel": "self"}, {"href": "http://localhost/nodes/86f1b8f3-92fb-4360-9975-c35c5c075b63/ports", "rel": "bookmark"}]} PATCH /v1/nodes/99448469-6bdb-4872-92d5-d40d74267390 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e917df15-4f33-42a4-8345-6bd3a810c6a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "99448469-6bdb-4872-92d5-d40d74267390", "created_at": "2025-05-19T19:09:33.158043+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspecting", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/99448469-6bdb-4872-92d5-d40d74267390", "rel": "self"}, {"href": "http://localhost/nodes/99448469-6bdb-4872-92d5-d40d74267390", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99448469-6bdb-4872-92d5-d40d74267390/ports", "rel": "self"}, {"href": "http://localhost/nodes/99448469-6bdb-4872-92d5-d40d74267390/ports", "rel": "bookmark"}]} PATCH /v1/nodes/4203b164-d800-4118-8ae6-a3d1abfa123a WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68ccc684-1e37-49e4-a7b3-d8492191e799 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4203b164-d800-4118-8ae6-a3d1abfa123a", "created_at": "2025-05-19T19:09:33.196176+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "clean failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/4203b164-d800-4118-8ae6-a3d1abfa123a", "rel": "self"}, {"href": "http://localhost/nodes/4203b164-d800-4118-8ae6-a3d1abfa123a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4203b164-d800-4118-8ae6-a3d1abfa123a/ports", "rel": "self"}, {"href": "http://localhost/nodes/4203b164-d800-4118-8ae6-a3d1abfa123a/ports", "rel": "bookmark"}]} PATCH /v1/nodes/9da2e55f-b7ba-4f20-8279-6dd45960618b WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e188c9d6-5c28-4e93-819a-7e658e549e16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "9da2e55f-b7ba-4f20-8279-6dd45960618b", "created_at": "2025-05-19T19:09:33.226328+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "error", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_p rovision_state": "available", "links": [{"href": "http://localhost/v1/nodes/9da2e55f-b7ba-4f20-8279-6dd45960618b", "rel": "self"}, {"href": "http://localhost/nodes/9da2e55f-b7ba-4f20-8279-6dd45960618b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9da2e55f-b7ba-4f20-8279-6dd45960618b/ports", "rel": "self"}, {"href": "http://localhost/nodes/9da2e55f-b7ba-4f20-8279-6dd45960618b/ports", "rel": "bookmark"}]} PATCH /v1/nodes/67151ec6-c8ad-4eba-b330-f9bdf6260a56 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be745875-3330-4110-8a30-8a4935cd58e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "67151ec6-c8ad-4eba-b330-f9bdf6260a56", "created_at": "2025-05-19T19:09:33.260570+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "verifying", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/67151ec6-c8ad-4eba-b330-f9bdf6260a56", "rel": "self"}, {"href": "http://localhost/nodes/67151ec6-c8ad-4eba-b330-f9bdf6260a56", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/67151ec6-c8ad-4eba-b330-f9bdf6260a56/ports", "rel": "self"}, {"href": "http://localhost/nodes/67151ec6-c8ad-4eba-b330-f9bdf6260a56/ports", "rel": "bookmark"}]} PATCH /v1/nodes/823ded01-fd6b-4543-a614-3727c71c11eb WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-810cfd03-d5fd-4836-9de4-25286dfe08d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "823ded01-fd6b-4543-a614-3727c71c11eb", "created_at": "2025-05-19T19:09:33.292051+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "adopt failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/823ded01-fd6b-4543-a614-3727c71c11eb", "rel": "self"}, {"href": "http://localhost/nodes/823ded01-fd6b-4543-a614-3727c71c11eb", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/823ded01-fd6b-4543-a614-3727c71c11eb/ports", "rel": "self"}, {"href": "http://localhost/nodes/823ded01-fd6b-4543-a614-3727c71c11eb/ports", "rel": "bookmark"}]} PATCH /v1/nodes/56a2079e-84ff-48b4-af66-9a0721ec31b5 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54b73baa-13a9-45e9-81f9-f30d533c5171 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "56a2079e-84ff-48b4-af66-9a0721ec31b5", "created_at": "2025-05-19T19:09:33.319350+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "rescue failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/56a2079e-84ff-48b4-af66-9a0721ec31b5", "rel": "self"}, {"href": "http://localhost/nodes/56a2079e-84ff-48b4-af66-9a0721ec31b5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/56a2079e-84ff-48b4-af66-9a0721ec31b5/ports", "rel": "self"}, {"href": "http://localhost/nodes/56a2079e-84ff-48b4-af66-9a0721ec31b5/ports", "rel": "bookmark"}]} PATCH /v1/nodes/42fb8242-d91c-4d89-9f9b-32210fbe52bc WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-101e4dcf-6452-417a-a708-f1169478ba6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "42fb8242-d91c-4d89-9f9b-32210fbe52bc", "created_at": "2025-05-19T19:09:33.348491+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "unrescue failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/42fb8242-d91c-4d89-9f9b-32210fbe52bc", "rel": "self"}, {"href": "http://localhost/nodes/42fb8242-d91c-4d89-9f9b-32210fbe52bc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/42fb8242-d91c-4d89-9f9b-32210fbe52bc/ports", "rel": "self"}, {"href": "http://localhost/nodes/42fb8242-d91c-4d89-9f9b-32210fbe52bc/ports", "rel": "bookmark"}]} PATCH /v1/nodes/a98fd2a9-17db-4d8d-9ad1-80386b016e7f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58ee8554-46ed-41c8-84d8-90443a1370e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a98fd2a9-17db-4d8d-9ad1-80386b016e7f", "created_at": "2025-05-19T19:09:33.376102+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "service", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/a98fd2a9-17db-4d8d-9ad1-80386b016e7f", "rel": "self"}, {"href": "http://localhost/nodes/a98fd2a9-17db-4d8d-9ad1-80386b016e7f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a98fd2a9-17db-4d8d-9ad1-80386b016e7f/ports", "rel": "self"}, {"href": "http://localhost/nodes/a98fd2a9-17db-4d8d-9ad1-80386b016e7f/ports", "rel": "bookmark"}]} PATCH /v1/nodes/5632fe64-dba1-4c05-86c3-acf3fb12a71b WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b80bd328-3cf9-462d-a3ec-bb2c939ae44f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5632fe64-dba1-4c05-86c3-acf3fb12a71b", "created_at": "2025-05-19T19:09:33.404733+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_in fo": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "service hold", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/5632fe64-dba1-4c05-86c3-acf3fb12a71b", "rel": "self"}, {"href": "http://localhost/nodes/5632fe64-dba1-4c05-86c3-acf3fb12a71b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5632fe64-dba1-4c05-86c3-acf3fb12a71b/ports", "rel": "self"}, {"href": "http://localhost/nodes/5632fe64-dba1-4c05-86c3-acf3fb12a71b/ports", "rel": "bookmark"}]} PATCH /v1/nodes/e30da863-1414-4ba4-b42e-221c95686804 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a876d10b-dc28-475d-a537-3e19baec0d3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e30da863-1414-4ba4-b42e-221c95686804", "created_at": "2025-05-19T19:09:33.434840+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "service failed", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/e30da863-1414-4ba4-b42e-221c95686804", "rel": "self"}, {"href": "http://localhost/nodes/e30da863-1414-4ba4-b42e-221c95686804", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e30da863-1414-4ba4-b42e-221c95686804/ports", "rel": "self"}, {"href": "http://localhost/nodes/e30da863-1414-4ba4-b42e-221c95686804/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.078724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d9e1cc2-bfbd-463c-91b0-c81eb73ac835 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:33.440885+00:00", "updated_at": "2025-05-19T19:09:33.485739+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.089210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-459fd102-4563-4028-9f30-76af824179bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "a1f9aa86-1cb8-4bfe-929a-dd72ec367e65", "created_at": "2025-05-19T19:09:33.445679+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "foo", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/a1f9aa86-1cb8-4bfe-929a-dd72ec367e65", "rel": "self"}, {"href": "http://localhost/nodes/a1f9aa86-1cb8-4bfe-929a-dd72ec367e65", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a1f9aa86-1cb8-4bfe-929a-dd72ec367e65/ports", "rel": "self"}, {"href": "http://localhost/nodes/a1f9aa86-1cb8-4bfe-929a-dd72ec367e65/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a1f9aa86-1cb8-4bfe-929a-dd72ec367e65/states", "rel": "self"}, {"href": "http://localhost/nodes/a1f9aa86-1cb8-4bfe-929a-dd72ec367e65/states", "rel": "bookmark"}]}]} GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24575b29-ed51-4ce9-9bfa-a9cfb9396afb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "be64d462-ee13-43c9-bffa-b38cd848ff8d", "created_at": "2025-05-19T19:09:33.447140+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "bar", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/be64d462-ee13-43c9-bffa-b38cd848ff8d", "rel": "self"}, {"href": "http://localhost/nodes/be64d462-ee13-43c9-bffa-b38cd848ff8d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/be64d462-ee13-43c9-bffa-b38cd848ff8d/ports", "rel": "self"}, {"href": "http://localhost/nodes/be64d462-ee13-43c9-bffa-b38cd848ff8d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/be64d462-ee13-43c9-bffa-b38cd848ff8d/states", "rel": "self"}, {"href": "http://localhost/nodes/be64d462-ee13-43c9-bffa-b38cd848ff8d/states", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.053858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system?state=on WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-2e00486a-e39c-4eef-ae62-7509b4210367 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.047625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system WITH {'state': 'on'} GOT Response: 204 No Content Openstack-Request-Id: req-d482f373-7638-408d-9554-458fb04d6386 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.107972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a85af43-8dd2-46f7-932f-73626bc2824c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:33.540440+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.151916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4beb43e-e724-4eed-b252-e6a3de226742 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "cb762d9b-d307-452c-8e8b-0e4bc0604128", "created_at": "2025-05-19T19:09:33.527875+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspecting", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128", "rel": "self"}, {"href": "http://localhost/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/ports", "rel": "self"}, {"href": "http://localhost/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/states", "rel": "self"}, {"href": "http://localhost/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/volume", "rel": "self"}, {"href": "http://localhost/nodes/cb762d9b-d307-452c-8e8b-0e4bc0604128/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.052201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-71299ac5-b78f-41f1-81df-f0cfa6bac58d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.020297s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.119821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/5e413504-fdd9-40f2-aa96-cee345162bf0 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-ab327261-7eb9-430b-b731-02621e4895d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"5e413504-fdd9-40f2-aa96-cee345162bf0\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.303292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-406862ce-97b4-4706-bd9e-5356eda6df20 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.261223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-379edeef-4e2f-453b-af82-fd1a53a6117f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.038613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-d6831e97-f922-40c5-9b7b-a38890a11ef9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.178879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-e2d784a9-3e8d-408b-8f2a-359f3e52b1a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5d21545-0fe4-4aa4-b2eb-e341aa3fb47a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.057830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e77c4793-ca19-41f8-bab2-fb70d57365bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.039727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-87c59f67-ae38-4e4f-b525-23ccaf837284 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.066353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c8575a5b-2452-446e-ac6b-c09a3743472c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.082449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-303534a6-4c31-4a5a-9234-df84cce97d6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.048392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ff29e918-4a86-4001-b0b9-f7cc5f10fb59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.074486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-59aba8d2-7d1a-4b76-8184-70ed6e5e865c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.057461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2253d60-5f7c-4d52-a8a5-b46880f420c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:33.989980+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.088779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-538974a9-1701-4fe0-b31b-0c78438a2873 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:33.995822+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0303fec0-d771-4208-9413-58dc72ce0481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:33.995822+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict [0.051382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6de22fac-f272-4838-8801-0e04128975d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:34.033572+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.080574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-2aa3bff1-ea6f-4cee-b698-488f0726f950 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.061720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra,instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59ebbfd2-b846-42bd-accb-94d36f9d3e17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.104778s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-a55f29f3-9796-4022-a2f2-6445933d0bbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:34.107360+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d263dda4-be08-437f-9a33-2ff1ee6b9547 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:34.107360+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_as_list [0.037999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra&fields=instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3acb78be-6044-49c2-8514-6b07ba34947b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.107215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unhold'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-14edf239-2607-44d8-9929-1ca9629e4cdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.456395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dce82d34-b7dc-46b6-94c7-ede2917a2051 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} PATCH /v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebd81c4d-c67c-4c25-8c8b-85d698a5c7a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspe ct_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} PATCH /v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d19e1eb6-4bb7-43c5-9083-efaf63e24d2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "s elf"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} PATCH /v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83c07e2e-381e-4ddf-9a3d-868f446224d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-124f8e36-36e8-402f-bd94-4a35d6046d54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} PATCH /v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b5a2140-e2d7-4c04-a8e6-a66c3b66bf59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface ": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} PATCH /v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41852a83-4a27-44c5-9655-7bc5dd6db80c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "self"}, {"href" : "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} PATCH /v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6516d3f3-81e4-4f4b-a250-fff49ec164ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "created_at": "2025-05-19T19:09:33.832345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3d97d41-f935-4d7d-a95e-c424ccc47f5c/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.061820s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a608121-0924-4ad3-82d1-d0579a87a576 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"driver_info": {"fake_password": "******"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.128945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-defa284e-d144-405a-8999-6fd964a080d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis [0.057536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e1a58b8-b301-42cd-b3e5-f5b5b60bb0b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:34.260935+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.100646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unhold'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-12b83dec-a76b-4c7c-a43a-fc16e39b0f86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.84 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.105974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a8f09910-8350-4d76-9f83-cb8cef4aaf53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-06642286-2ce4-4861-bc43-325dc8894edb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3ede670a-81b8-4ea7-917c-7d3564ac6cb0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-931b214f-a108-496d-b3a1-25ec3b9356f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-093654c6-e587-4b2b-8c9b-1ea9ceb98a6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0d9a5432-e519-4dff-bfb7-153d86c82da9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-06a72346-02e6-4875-a515-b79e84bee5f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/de0ae80b-955c-4d27-a70d-4aef0b4e9049 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fc3bdea9-9274-4244-b3cc-6c96e7a1fba1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json_in_name [0.051463s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3f2053cb-c5bb-450d-907c-495532bdb622 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:34.311834+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node.json.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.098832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/5633e760-24b4-4a49-b6ab-92ede91e1c5d Openstack-Request-Id: req-14efde66-d932-49db-b0f7-a0356be2dab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5633e760-24b4-4a49-b6ab-92ede91e1c5d", "created_at": "2025-05-19T19:09:34.335260+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/5633e760-24b4-4a49-b6ab-92ede91e1c5d", "rel": "self"}, {"href": "http://localhost/ports/5633e760-24b4-4a49-b6ab-92ede91e1c5d", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/5633e760-24b4-4a49-b6ab-92ede91e1c5d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ff8466e-6123-4ca8-b20e-d86b421af2f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5633e760-24b4-4a49-b6ab-92ede91e1c5d", "created_at": "2025-05-19T19:09:34.335260+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/5633e760-24b4-4a49-b6ab-92ede91e1c5d", "rel": "self"}, {"href": "http://localhost/ports/5633e760-24b4-4a49-b6ab-92ede91e1c5d", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.042708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08b7ef71-a2d8-4ceb-a055-1c15cc9b8d9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:34.358788+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.110968s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unhold'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-ef0d5632-4412-476e-ab33-b138ff368632 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.043028s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7139c1b-8118-4811-b2bd-09c32419ef3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:34.400348+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_not_found [0.038658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9999b398-ae79-4904-93e9-10e9104457f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee [0.160239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f4e86bd-b7b0-4af8-a25b-cb82db48107c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "f4d2350c-5556-4b67-9d7d-6d99173d660e", "created_at": "2025-05-19T19:09:34.356691+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e", "rel": "self"}, {"href": "http://localhost/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/states", "rel": "self"}, {"href": "http://localhost/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/volume", "rel": "self"}, {"href": "http://localhost/nodes/f4d2350c-5556-4b67-9d7d-6d99173d660e/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.099892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'invalid-format', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9c401c67-d74b-40da-9d7e-5bbfce2ee300 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.100492s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unhold'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d0028302-e09a-4e09-9b30-5a4360b647a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.84 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret [0.043482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b11ba92-1122-464e-8786-4af6f2a1dead X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:34.485337+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"agent_secret_token": "******", "agent_secret_token_pregenerated": "******"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.047718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unhold'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-a985d49c-4935-4b75-a9cb-59d2e811bbb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api [0.102745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/77547acc-9983-424a-93fd-2aa9c42facef WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b135efaf-edba-45b3-b36f-9765e7e3344d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.069979s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa078783-85fc-43b4-9277-7fdc4f15fb0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:34.551287+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "test.1", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.066835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c24f3754-d0f0-46c1-bbc5-613ba1e6b8d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.042753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=owner WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-228dad20-1c69-4b9d-9323-2bcfd5737b68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"owner": "fred", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.053715s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.075439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=protected WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72f4853d-1dac-4b11-ac80-784303a7c157 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"protected": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.033613s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data [0.170516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba WITH [{'path': '/network_data', 'value': {'links': [{'id': 'interface2', 'type': 'vif', 'ethernet_mac_address': 'a0:36:9f:2c:e8:70', 'vif_id': 'e1c90e9f-eafc-4e2d-8ec9-58b91cebb53d', 'mtu': 1500}, {'id': 'interface0', 'type': 'phy', 'ethernet_mac_address': 'a0:36:9f:2c:e8:80', 'mtu': 9000}, {'id': 'interface1', 'type': 'phy', 'ethernet_mac_address': 'a0:36:9f:2c:e8:81', 'mtu': 9000}, {'id': 'bond0', 'type': 'bond', 'bond_links': ['interface0', 'interface1'], 'ethernet_mac_address': 'a0:36:9f:2c:e8:82', 'bond_mode': '802.3ad', 'bond_xmit_hash_policy': 'layer3+4', 'bond_miimon': 100}, {'id': 'vlan0', 'type': 'vlan', 'vlan_link': 'bond0', 'vlan_id': 101, 'vlan_mac_address': 'a0:36:9f:2c:e8:80', 'vif_id': 'e1c90e9f-eafc-4e2d-8ec9-58b91cebb53f'}], 'networks': [{'id': 'private-ipv4', 'type': 'ipv4', 'link': 'interface0', 'ip_address': '10.184.0.244', 'netmask': '255.255.240.0', 'routes': [{'network': '10.0.0.0', 'netmask': '255.0.0.0', 'gateway': '11.0.0.1'}, {'network': '0.0.0.0', 'netmask': '0.0.0.0', 'gateway': '23.253.157.1'}], 'network_id': 'da5bb487-5193-4a65-a3df-4a0055a8c0d7'}, {'id': 'private-ipv4', 'type': 'ipv6', 'link': 'interface0', 'ip_address': '2001:cdba::3257:9652/24', 'routes': [{'network': '::', 'netmask': '::', 'gateway': 'fd00::1'}, {'network': '::', 'netmask': 'ffff:ffff:ffff::', 'gateway': 'fd00::1:1'}], 'network_id': 'da5bb487-5193-4a65-a3df-4a0055a8c0d8'}, {'id': 'publicnet-ipv4', 'type': 'ipv4', 'link': 'vlan0', 'ip_address': '23.253.157.244', 'netmask': '255.255.255.0', 'dns_nameservers': ['69.20.0.164', '69.20.0.196'], 'routes': [{'network': '0.0.0.0', 'netmask': '0.0.0.0', 'gateway': '23.253.157.1'}], 'network_id': '62611d6f-66cb-4270-8b1f-503ef0dd4736'}], 'services': [{'type': 'dns', 'address': '8.8.8.8'}, {'type': 'dns', 'address': '8.8.4.4'}]}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ce590be-6407-45d2-802c-6000c9f20184 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "fde6ab24-7694-4da2-8caa-0d0e79f527ba", "created_at": "2025-05-19T19:09:34.645510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba", "rel": "self"}, {"href": "http://localhost/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde6ab24-7694-4da2-8caa -0d0e79f527ba/states", "rel": "self"}, {"href": "http://localhost/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde6ab24-7694-4da2-8caa-0d0e79f527ba/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.037473s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields [0.067532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=retired WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0bfb9f3a-9fb4-4f85-b535-f695fa256c2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"retired": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.042185s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom [0.077950s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c6ae671-737b-4cbe-b0b5-02b4b48a09bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "539eb516-e3dd-4d1b-b9ce-dfe988d13af2", "created_at": "2025-05-19T19:09:34.773485+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2", "rel": "self"}, {"href": "http://localhost/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/ports", "rel": "self"}, {"href": "http://localhost/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/states", "rel": "self"}, {"href": "http://localhost/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/volume", "rel": "self"}, {"href": "http://localhost/nodes/539eb516-e3dd-4d1b-b9ce-dfe988d13af2/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.054336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66b10e59-c0fd-461d-a104-f3b99f7f239f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"storage_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.036728s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.057817s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.021991s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.092406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a55a0282-cc5b-475a-85e3-2272649a68d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.033736s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api [0.125895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f4edb3ed-189d-46f5-aeb9-ac3d5a26bcef WITH [{'path': '/network_data', 'value': {'links': [{'id': 'interface2', 'type': 'vif', 'ethernet_mac_address': 'a0:36:9f:2c:e8:70', 'vif_id': 'e1c90e9f-eafc-4e2d-8ec9-58b91cebb53d', 'mtu': 1500}, {'id': 'interface0', 'type': 'phy', 'ethernet_mac_address': 'a0:36:9f:2c:e8:80', 'mtu': 9000}, {'id': 'interface1', 'type': 'phy', 'ethernet_mac_address': 'a0:36:9f:2c:e8:81', 'mtu': 9000}, {'id': 'bond0', 'type': 'bond', 'bond_links': ['interface0', 'interface1'], 'ethernet_mac_address': 'a0:36:9f:2c:e8:82', 'bond_mode': '802.3ad', 'bond_xmit_hash_policy': 'layer3+4', 'bond_miimon': 100}, {'id': 'vlan0', 'type': 'vlan', 'vlan_link': 'bond0', 'vlan_id': 101, 'vlan_mac_address': 'a0:36:9f:2c:e8:80', 'vif_id': 'e1c90e9f-eafc-4e2d-8ec9-58b91cebb53f'}], 'networks': [{'id': 'private-ipv4', 'type': 'ipv4', 'link': 'interface0', 'ip_address': '10.184.0.244', 'netmask': '255.255.240.0', 'routes': [{'network': '10.0.0.0', 'netmask': '255.0.0.0', 'gateway': '11.0.0.1'}, {'network': '0.0.0.0', 'netmask': '0.0.0.0', 'gateway': '23.253.157.1'}], 'network_id': 'da5bb487-5193-4a65-a3df-4a0055a8c0d7'}, {'id': 'private-ipv4', 'type': 'ipv6', 'link': 'interface0', 'ip_address': '2001:cdba::3257:9652/24', 'routes': [{'network': '::', 'netmask': '::', 'gateway': 'fd00::1'}, {'network': '::', 'netmask': 'ffff:ffff:ffff::', 'gateway': 'fd00::1:1'}], 'network_id': 'da5bb487-5193-4a65-a3df-4a0055a8c0d8'}, {'id': 'publicnet-ipv4', 'type': 'ipv4', 'link': 'vlan0', 'ip_address': '23.253.157.244', 'netmask': '255.255.255.0', 'dns_nameservers': ['69.20.0.164', '69.20.0.196'], 'routes': [{'network': '0.0.0.0', 'netmask': '0.0.0.0', 'gateway': '23.253.157.1'}], 'network_id': '62611d6f-66cb-4270-8b1f-503ef0dd4736'}], 'services': [{'type': 'dns', 'address': '8.8.8.8'}, {'type': 'dns', 'address': '8.8.4.4'}]}, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1ecc28a5-cd0a-4bd1-ae8f-55fbeaf90fdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.62 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.492314s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': 'invalid-format', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c83a02aa-69e9-4ed7-a23e-09ace06a401f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.046025s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.095964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e589bfb4-4406-4241-9ae8-a90ae6567784 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"supported_boot_devices": ["pxe"]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.079855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': '', 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ea7c4165-258a-4877-80e8-216467ef9485 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.045683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c3090e4-87ef-473e-846c-cf7089373baa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"supported_boot_devices": ["pxe"]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.110371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a6f003c6-9f73-401b-aa08-119ae71d4e58 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d23eabab-9ec1-4dbe-8ded-c3d3e7db726d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid network_data: 'links' is a required property \", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.038880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 1234, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-97fb0eab-d4e4-43bf-bbde-e607c71792a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.051819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-59670e62-7e32-4d1c-b98e-e31cec468efa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.053559s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e0e5cf8-9f69-4f86-a0be-52977ef35d44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.165865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-912a25a4-8fe5-4903-9e57-5bd16494edc4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "1c3b4d6a-d654-491d-bc04-47cfe36c2db0", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/1c3b4d6a-d654-491d-bc04-47cfe36c2db0", "rel": "self"}, {"href": "http://localhost/portgroups/1c3b4d6a-d654-491d-bc04-47cfe36c2db0", "rel": "bookmark"}]}, {"uuid": "7631e0b0-7e6d-45ee-9acf-6957703d41e6", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/7631e0b0-7e6d-45ee-9acf-6957703d41e6", "rel": "self"}, {"href": "http://localhost/portgroups/7631e0b0-7e6d-45ee-9acf-6957703d41e6", "rel": "bookmark"}]}, {"uuid": "cd1e468f-50f1-4bcd-bfb9-ff22246efbb5", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/cd1e468f-50f1-4bcd-bfb9-ff22246efbb5", "rel": "self"}, {"href": "http://localhost/portgroups/cd1e468f-50f1-4bcd-bfb9-ff22246efbb5", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=cd1e468f-50f1-4bcd-bfb9-ff22246efbb5"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.114748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a22abed8-7a03-40fb-b81e-f376310b3b70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "710ef65b-44d6-4980-b595-f27fb2c48eb9", "created_at": "2025-05-19T19:09:35.108692+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9", "rel": "self"}, {"href": "http://localhost/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/ports", "rel": "self"}, {"href": "http://localhost/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/states", "rel": "self"}, {"href": "http://localhost/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/volume", "rel": "self"}, {"href": "http://localhost/nodes/710ef65b-44d6-4980-b595-f27fb2c48eb9/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators [0.065811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb31fcdb-4d37-4d6c-bbf0-5e40a266029f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported [0.059013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a96c3456-711e-4020-9937-c33bde38ee82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.117262s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-6ed05f12-83b3-47d7-9567-ae831f2c9262 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:35.229835+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15", "switch_info": "value3"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.098533s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2017f3f8-fb0a-49c9-8e70-ec4b78b28841 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7acd2a0c-898d-4abe-b554-1689e4f22bee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.052369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6215da78-66d9-49fb-b291-6b0a9c2c9ada X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.054714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2b58f3c8-e9e9-4255-b338-bf39a9124f7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields [0.039959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2838a51-6cbe-4523-8d9b-1e7304f9a3e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": [], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.204092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e5d8ef8-276b-4e24-96c4-e6c518fc9ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "34d6548e-077b-44bb-a6d7-bd9dfbd2499a", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/34d6548e-077b-44bb-a6d7-bd9dfbd2499a", "rel": "self"}, {"href": "http://localhost/portgroups/34d6548e-077b-44bb-a6d7-bd9dfbd2499a", "rel": "bookmark"}]}, {"uuid": "b833f6fd-ef39-48e6-9471-f3eccce8ace0", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/b833f6fd-ef39-48e6-9471-f3eccce8ace0", "rel": "self"}, {"href": "http://localhost/portgroups/b833f6fd-ef39-48e6-9471-f3eccce8ace0", "rel": "bookmark"}]}, {"uuid": "ae0e4234-e1a0-46ea-9347-4170fd936363", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/ae0e4234-e1a0-46ea-9347-4170fd936363", "rel": "self"}, {"href": "http://localhost/portgroups/ae0e4234-e1a0-46ea-9347-4170fd936363", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=ae0e4234-e1a0-46ea-9347-4170fd936363"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.036504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e625f93c-d404-457c-bb71-574ce1e57644 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.088881s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-a03773d9-aee9-4553-864b-f07c587eeece X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:35.382788+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.051994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=allocation_uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-30108db2-3a87-46fc-a34d-a74c8dc5015d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "allocation_uuid": "5c94de4a-d1fa-4e0b-afba-02dfa1fe2091"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.204331s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51162817-cf13-414d-898e-07e4072c6ec7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.346524+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.085847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'zz:zz:zz:zz:zz:zz', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f1255c88-30c5-41cb-b663-c2cba6b9fab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.066504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16c5dd4d-b21f-485f-9eeb-aa526d078a33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.451259+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17bdd870-3c60-4673-afbd-3a1681df76a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.7 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.451259+00:00", "updated_at": null, "clean_step": {"foo": "bar"}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit [0.181340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16d779a2-121a-4955-a569-e9ab81413715 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "5ad48b3c-8271-40e5-a76c-81908b08528f", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/5ad48b3c-8271-40e5-a76c-81908b08528f", "rel": "self"}, {"href": "http://localhost/portgroups/5ad48b3c-8271-40e5-a76c-81908b08528f", "rel": "bookmark"}]}, {"uuid": "46c5b401-42cf-4c71-a0f4-74b5cb842384", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/46c5b401-42cf-4c71-a0f4-74b5cb842384", "rel": "self"}, {"href": "http://localhost/portgroups/46c5b401-42cf-4c71-a0f4-74b5cb842384", "rel": "bookmark"}]}, {"uuid": "e846d28a-cca4-45d4-8638-6a76f46d78fe", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/e846d28a-cca4-45d4-8638-6a76f46d78fe", "rel": "self"}, {"href": "http://localhost/portgroups/e846d28a-cca4-45d4-8638-6a76f46d78fe", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=e846d28a-cca4-45d4-8638-6a76f46d78fe"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.058057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a37a5b79-b5b2-4d19-9a2d-50f17ec4e59c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.513098+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f761dde-8051-462d-99a6-a841fd3c3e9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.513098+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "useful piece", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.066996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-6ec029e3-8e8d-415f-9c53-a3f2ae66a68d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:35.526206+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.052939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c5a37a9-582a-4aff-8c91-77ff6f99302d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.568521+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66495e75-b7db-4b97-b8d6-fbd598e2406b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.3 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.568521+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"foo": "bar"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_missing_address_fails [0.078726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d610491e-c2fb-4f2c-98e8-79913ef7c3be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.165948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/node-57.1 WITH [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc3bd429-91b9-4123-bb8a-505aae7589cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.527021+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.115054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e05227e-09ca-4afe-87a5-3895900e7d17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:35.628689+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.067225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5987c116-3c7e-446d-9cf4-a6a68f586c09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.635320+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9524791-3e0c-42e5-ae89-a58ba0eed163 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.635320+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": "2015-03-18T19:20:00+00:00", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.087326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-02eea247-24fb-449a-aa1e-e871c5703de4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.068079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-907671e3-6d39-40ee-b495-170db88f3909 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.075048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-027a3762-3625-43f8-90a8-768c43abbdfb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.713345+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}]} GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d72e760a-8efe-4aac-a9b1-143175fa0f79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.713345+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.078500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24e79871-0419-48a0-aed9-9820065c167e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:35.776858+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.089703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0f94de0d-16cc-4334-a552-5aefe2aab3f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.073290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd63df8a-8c51-490a-bb1e-2fc81373ae1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.775126+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a628c7e3-6a38-40d5-90aa-20b3558312b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.775126+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "fish", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.180735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/node-57.1.json WITH [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c595aaa-feca-492a-8c83-b99e35d598c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.686694+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.076942s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f45d5311-15bd-44a7-94d5-448cb584b1c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.859991+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]} GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-791aac8a-4c7f-4a5c-baba-d8a18e9842a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.859991+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.098285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.042733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09ae5221-c863-4655-8749-d961c1773af5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.915714+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]} GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7e71d7b-3466-44f4-95c3-e7fbd0f91413 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.915714+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "foo", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.134727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/544b917d-b917-4d9f-be28-8f4519b422f5 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e82db20-d633-4226-98a1-eaf07cb958c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "544b917d-b917-4d9f-be28-8f4519b422f5", "created_at": "2025-05-19T19:09:35.904879+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/544b917d-b917-4d9f-be28-8f4519b422f5", "rel": "self"}, {"href": "http://localhost/nodes/544b917d-b917-4d9f-be28-8f4519b422f5", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/ports", "rel": "self"}, {"href": "http://localhost/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/states", "rel": "self"}, {"href": "http://localhost/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/volume", "rel": "self"}, {"href": "http://localhost/nodes/544b917d-b917-4d9f-be28-8f4519b422f5/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.041218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-156d2e76-d4ae-45bd-b724-6deb38dd8f41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.955433+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0c0934a-7693-46a0-a3ee-41c4ad3c683e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:35.955433+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uui d": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.190485s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-32ab1217-4b58-4b2e-a929-a277df21b57d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.101727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3634215f-142b-4f94-9527-62f1d329c155 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:35.976469+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.102240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbe5036f-95d4-426a-a4e8-942b2b50f93c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:36.016717+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd06f7fd-d0df-4458-bfdb-ae1917a45d9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:36.016717+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["CUSTOM_1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c 02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.087166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7caa70ae-0fc1-498f-af5a-eb4af412b758 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} GET /v1/portgroups?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d290ee76-1d0b-48d1-9340-1a3c9665b787 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.139082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/70a3d43f-8f06-47e4-b769-e416821113cc WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35f0a482-b587-4e8c-892d-b07bc29e142c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "70a3d43f-8f06-47e4-b769-e416821113cc", "created_at": "2025-05-19T19:09:36.014936+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/70a3d43f-8f06-47e4-b769-e416821113cc", "rel": "self"}, {"href": "http://localhost/nodes/70a3d43f-8f06-47e4-b769-e416821113cc", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/states", "rel": "self"}, {"href": "http://localhost/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/70a3d43f-8f06-47e4-b769-e416821113cc/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.042792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa34bf8d-de89-4060-a576-3cbaab71ba5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:36.100944+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-737fe7a4-3687-4a85-a38e-0a83143a47d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:36.100944+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "b ookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.138238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-adf8d04c-fbc1-423b-a961-f6754ef1aaa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:36.123666+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.048740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb840098-eeb1-454e-a36b-8a8c239ef91f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "871b1eb3-a9de-4068-97af-32c4d292e546", "created_at": "2025-05-19T19:09:36.145931+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546", "rel": "self"}, {"href": "http://localhost/nodes/871b1eb3-a9de-4068-97af-32c4d292e546", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546/ports", "rel": "self"}, {"href": "http://localhost/nodes/871b1eb3-a9de-4068-97af-32c4d292e546/ports", "rel": "bookmark"}]} GET /v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e14f1aa5-550a-4034-8638-cc3a1d27d60f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "871b1eb3-a9de-4068-97af-32c4d292e546", "created_at": "2025-05-19T19:09:36.145931+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546", "rel": "self"}, {"href": "http://localhost/nodes/871b1eb3-a9de-4068-97af-32c4d292e546", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546/ports", "rel": "self"}, {"href": "http://localhost/nodes/871b1eb3-a9de-4068-97af-32c4d292e546/ports", "rel": "bookmark"}]} GET /nodes/871b1eb3-a9de-4068-97af-32c4d292e546 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b111623-94ec-447e-bd34-2409fc858e7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "871b1eb3-a9de-4068-97af-32c4d292e546", "created_at": "2025-05-19T19:09:36.145931+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546", "rel": "self"}, {"href": "http://localhost/nodes/871b1eb3-a9de-4068-97af-32c4d292e546", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/871b1eb3-a9de-4068-97af-32c4d292e546/ports", "rel": "self"}, {"href": "http://localhost/nodes/871b1eb3-a9de-4068-97af-32c4d292e546/ports", "rel ": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.088535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3eac62ae-76c1-4c22-b994-98b2adce3494 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "1cc626dd-3c47-4a2a-8952-8928c6817723", "created_at": "2025-05-19T19:09:36.156465+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "mode_1", "name": "portgroup1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/1cc626dd-3c47-4a2a-8952-8928c6817723", "rel": "self"}, {"href": "http://localhost/portgroups/1cc626dd-3c47-4a2a-8952-8928c6817723", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/1cc626dd-3c47-4a2a-8952-8928c6817723/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1cc626dd-3c47-4a2a-8952-8928c6817723/ports", "rel": "bookmark"}]}, {"uuid": "e98b4176-6a61-49cb-ac6a-0ce5557200a3", "created_at": "2025-05-19T19:09:36.149037+00:00", "updated_at": null, "address": "52:54:00:cf:2d:32", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "mode_2", "name": "portgroup2", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/e98b4176-6a61-49cb-ac6a-0ce5557200a3", "rel": "self"}, {"href": "http://localhost/portgroups/e98b4176-6a61-49cb-ac6a-0ce5557200a3", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/e98b4176-6a61-49cb-ac6a-0ce5557200a3/ports", "rel": "self"}, {"href": "http://localhost/portgroups/e98b4176-6a61-49cb-ac6a-0ce5557200a3/ports", "rel": "bookmark"}]}, {"uuid": "a9467980-d29a-4ef1-9aa7-1693cbf111a1", "created_at": "2025-05-19T19:09:36.143619+00:00", "updated_at": null, "address": "52:54:00:cf:2d:33", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "mode_3", "name": "portgroup3", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/a9467980-d29a-4ef1-9aa7-1693cbf111a1", "rel": "self"}, {"href": "http://localhost/portgroups/a9467980-d29a-4ef1-9aa7-1693cbf111a1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/a9467980-d29a-4ef1-9aa7-1693cbf111a1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/a9467980-d29a-4ef1-9aa7-1693cbf111a1/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.112393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d3a20927-4592-4695-96e6-e843f44769ef WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b07dc501-2ba6-49d1-b4d7-f01a60c03f38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"d3a20927-4592-4695-96e6-e843f44769ef\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.052877s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a07b15c6-f4a5-401a-8be3-f8c5d466040b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "932a1e82-4ab4-473b-9d10-405b1012cb22", "created_at": "2025-05-19T19:09:36.195592+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://foo/v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22", "rel": "self"}, {"href": "http://foo/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22/ports", "rel": "self"}, {"href": "http://foo/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22/ports", "rel": "bookmark"}]} GET /v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0961d09-cf37-4274-98a2-3a6f1569838b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "932a1e82-4ab4-473b-9d10-405b1012cb22", "created_at": "2025-05-19T19:09:36.195592+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://foo/v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22", "rel": "self"}, {"href": "http://foo/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22/ports", "rel": "self"}, {"href": "http://foo/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22/ports", "rel": "bookmark"}]} GET /nodes/932a1e82-4ab4-473b-9d10-405b1012cb22 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-26c29b78-0980-4537-add5-ca467bafa67f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "932a1e82-4ab4-473b-9d10-405b1012cb22", "created_at": "2025-05-19T19:09:36.195592+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://foo/v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22", "rel": "self"}, {"href": "http://foo/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22/ports", "rel": "self"}, {"href": "http://foo/nodes/932a1e82-4ab4-473b-9d10-405b1012cb22/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.057376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c1e10dc8-2504-4ec5-8b89-2f64bbf3cfb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.057437s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-30ee8461-4239-4831-bbc8-118f8b32fbcb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "f48b3dd7-5011-464a-9b66-7bd1825d2c0e", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f48b3dd7-5011-464a-9b66-7bd1825d2c0e", "rel": "self"}, {"href": "http://localhost/nodes/f48b3dd7-5011-464a-9b66-7bd1825d2c0e", "rel": "bookmark"}]}, {"uuid": "54b897e2-48fc-4a4e-9623-c5c07352400c", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/54b897e2-48fc-4a4e-9623-c5c07352400c", "rel": "self"}, {"href": "http://localhost/nodes/54b897e2-48fc-4a4e-9623-c5c07352400c", "rel": "bookmark"}]}]} GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89a9a0b7-5cac-4fa3-90cb-92fe47a8b0a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "591cc1c9-543b-4ed9-bdd2-119975e3595a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/591cc1c9-543b-4ed9-bdd2-119975e3595a", "rel": "self"}, {"href": "http://localhost/nodes/591cc1c9-543b-4ed9-bdd2-119975e3595a", "rel": "bookmark"}]}, {"uuid": "458f88b3-52e0-4563-ba29-32522516d161", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/458f88b3-52e0-4563-ba29-32522516d161", "rel": "self"}, {"href": "http://localhost/nodes/458f88b3-52e0-4563-ba29-32522516d161", "rel": "bookmark"}]}, {"uuid": "333f6321-08cc-42d8-8185-fba69c42affc", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/333f6321-08cc-42d8-8185-fba69c42affc", "rel": "self"}, {"href": "http://localhost/nodes/333f6321-08cc-42d8-8185-fba69c42affc", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.151308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5a4d8756-0141-4e7e-88c7-81585fd60c9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:36.265309+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.083038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8144b479-879a-4e92-ace1-bd77ef8e86ca WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-39028028-e6b8-4b9a-9da2-dcefc1b06478 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.066062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8ec2a9e6-6ef2-4d39-8d57-7dd277407de7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.058073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc75e2ca-7fb9-4474-b40d-84a160cfbfe3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "dd4571d6-ae09-4271-93c2-e83833408c63", "instance_uuid": "ee12fe76-d5fe-4337-abfd-1efd62805f29", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dd4571d6-ae09-4271-93c2-e83833408c63", "rel": "self"}, {"href": "http://localhost/nodes/dd4571d6-ae09-4271-93c2-e83833408c63", "rel": "bookmark"}]}, {"uuid": "2ad2a389-fa90-402f-b102-6b8128702d2f", "instance_uuid": "7e16d0f6-2974-4fc3-8988-54d73cbf326f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2ad2a389-fa90-402f-b102-6b8128702d2f", "rel": "self"}, {"href": "http://localhost/nodes/2ad2a389-fa90-402f-b102-6b8128702d2f", "rel": "bookmark"}]}, {"uuid": "3e4e4770-b829-48e0-9a19-d1921c7a8680", "instance_uuid": "02ef21cc-6af2-467d-81a7-dc575492b503", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3e4e4770-b829-48e0-9a19-d1921c7a8680", "rel": "self"}, {"href": "http://localhost/nodes/3e4e4770-b829-48e0-9a19-d1921c7a8680", "rel": "bookmark"}]}, {"uuid": "90332053-9165-402a-8971-dd24e88370be", "instance_uuid": "0127b55d-47ff-45ef-a03b-08dbba48ae15", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/90332053-9165-402a-8971-dd24e88370be", "rel": "self"}, {"href": "http://localhost/nodes/90332053-9165-402a-8971-dd24e88370be", "rel": "bookmark"}]}]} GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c96c306b-d7cb-47b6-9f96-7a7f155633c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "0794b1be-104b-477e-a5c1-c7f9cc15ed1f", "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} GET /v1/nodes?associated=true&maintenance=TruE WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5eaca87e-d968-4e75-8339-6585d057ca72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "0794b1be-104b-477e-a5c1-c7f9cc15ed1f", "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.035122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae142b6a-6434-4c08-933a-62a0054d1a3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid maintenance: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.071454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-689575d8-aa9e-4f2c-853a-89da629de8bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.104992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-caeb2a66-1533-4e46-a1a4-91e81540c75f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "008981d0-dedd-4cd1-884f-cf805456f1d7", "created_at": "2025-05-19T19:09:36.338878+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7", "rel": "self"}, {"href": "http://localhost/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/ports", "rel": "self"}, {"href": "http://localhost/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/states", "rel": "self"}, {"href": "http://localhost/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/volume", "rel": "self"}, {"href": "http://localhost/nodes/008981d0-dedd-4cd1-884f-cf805456f1d7/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.043232s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ee5b640-9e33-4817-9509-3abd89a8ee0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "9e0cd3c0-5212-433e-b985-e1003dc84154", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9e0cd3c0-5212-433e-b985-e1003dc84154", "rel": "self"}, {"href": "http://localhost/nodes/9e0cd3c0-5212-433e-b985-e1003dc84154", "rel": "bookmark"}]}, {"uuid": "5ad1904c-8deb-4144-bc98-91a749489eb3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5ad1904c-8deb-4144-bc98-91a749489eb3", "rel": "self"}, {"href": "http://localhost/nodes/5ad1904c-8deb-4144-bc98-91a749489eb3", "rel": "bookmark"}]}, {"uuid": "e2790e94-6ba7-4f81-98ab-2ffab37cf4a5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e2790e94-6ba7-4f81-98ab-2ffab37cf4a5", "rel": "self"}, {"href": "http://localhost/nodes/e2790e94-6ba7-4f81-98ab-2ffab37cf4a5", "rel": "bookmark"}]}, {"uuid": "cc4e9e29-93af-4af4-ab88-6b106f687937", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/cc4e9e29-93af-4af4-ab88-6b106f687937", "rel": "self"}, {"href": "http://localhost/nodes/cc4e9e29-93af-4af4-ab88-6b106f687937", "rel": "bookmark"}]}, {"uuid": "c5af377c-2ff2-47f3-b72d-ee62e708d6f4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c5af377c-2ff2-47f3-b72d-ee62e708d6f4", "rel": "self"}, {"href": "http://localhost/nodes/c5af377c-2ff2-47f3-b72d-ee62e708d6f4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.144529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-9067dfdd-961d-4ed4-b700-1c9d3514a64b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:36.411679+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.065274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7ed510d3-a3d0-4d65-b39c-df591b2d0eaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.048777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1542627a-82df-4236-9bc8-07383d102550 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fdd292f7-b3ce-4258-8ec2-9f75ee7df27e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"1542627a-82df-4236-9bc8-07383d102550\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.058291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56fb1d94-6bf1-4304-b894-c922b8918dd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.110158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-6f325a14-4c59-461d-a863-0885fb3bdedf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:36.535609+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.102906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-65ea8866-1bac-494b-b327-10e680a5399c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "2e9313fc-f5a3-4f30-934c-01fb14794191", "created_at": "2025-05-19T19:09:36.505842+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191", "rel": "self"}, {"href": "http://localhost/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/ports", "rel": "self"}, {"href": "http://localhost/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/states", "rel": "self"}, {"href": "http://localhost/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/volume", "rel": "self"}, {"href": "http://localhost/nodes/2e9313fc-f5a3-4f30-934c-01fb14794191/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.088745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-254ff7b8-22f3-4bde-9156-35e4cf22d12e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "75aace19-558b-41e6-89a1-f93061797040", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/75aace19-558b-41e6-89a1-f93061797040", "rel": "self"}, {"href": "http://localhost/portgroups/75aace19-558b-41e6-89a1-f93061797040", "rel": "bookmark"}]}, {"uuid": "d5f21bbe-8265-4558-83bb-86421f21cc95", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/d5f21bbe-8265-4558-83bb-86421f21cc95", "rel": "self"}, {"href": "http://localhost/portgroups/d5f21bbe-8265-4558-83bb-86421f21cc95", "rel": "bookmark"}]}, {"uuid": "c5dcc147-b662-4d28-9e54-1b3ec811efde", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/c5dcc147-b662-4d28-9e54-1b3ec811efde", "rel": "self"}, {"href": "http://localhost/portgroups/c5dcc147-b662-4d28-9e54-1b3ec811efde", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.074466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/93c74880-59ce-4ae6-9aa2-a366735ae9e2 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8e05e80f-b282-4632-8f74-4406b5f56262 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.049364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12fa0bcf-7c98-428d-8f35-6e0f53b761ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:36.625041+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.126946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4490e415-c291-43d0-bdfc-52714c6c00e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden [0.250970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2acedc79-5dab-4b75-bae8-7e3521ac880c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.057966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7c31c48-1a3b-4395-a286-85d47c4d2f36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.082888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3eb4db6f-740a-4075-8291-8789f0e57ced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"nodes": [{"uuid": "449b3838-0249-4bb5-92c9-6e49fcdec317", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/449b3838-0249-4bb5-92c9-6e49fcdec317", "rel": "self"}, {"href": "http://localhost/nodes/449b3838-0249-4bb5-92c9-6e49fcdec317", "rel": "bookmark"}]}, {"uuid": "aa956bab-c949-4bb4-9943-3effb5792366", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/aa956bab-c949-4bb4-9943-3effb5792366", "rel": "self"}, {"href": "http://localhost/nodes/aa956bab-c949-4bb4-9943-3effb5792366", "rel": "bookmark"}]}, {"uuid": "779819d5-4cd2-4768-885b-237671d101d3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/779819d5-4cd2-4768-885b-237671d101d3", "rel": "self"}, {"href": "http://localhost/nodes/779819d5-4cd2-4768-885b-237671d101d3", "rel": "bookmark"}]}, {"uuid": "0c48f49b-5052-4667-9aa7-e57ccf428238", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/0c48f49b-5052-4667-9aa7-e57ccf428238", "rel": "self"}, {"href": "http://localhost/nodes/0c48f49b-5052-4667-9aa7-e57ccf428238", "rel": "bookmark"}]}, {"uuid": "e6d8251e-1e49-405e-bc32-2ea5dbd85242", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/e6d8251e-1e49-405e-bc32-2ea5dbd85242", "rel": "self"}, {"href": "http://localhost/nodes/e6d8251e-1e49-405e-bc32-2ea5dbd85242", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.092050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c6c3b29e-6ae4-4e5c-ba60-b965e17299a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:36.749374+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.097667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b42fb858-17ce-45bd-86e7-8c95cb92ca6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "9dc1f4fc-99df-4982-a55f-1866c59638f9", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/9dc1f4fc-99df-4982-a55f-1866c59638f9", "rel": "self"}, {"href": "http://localhost/portgroups/9dc1f4fc-99df-4982-a55f-1866c59638f9", "rel": "bookmark"}]}, {"uuid": "389e7d66-b278-4485-91b0-71af4c65fbd0", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/389e7d66-b278-4485-91b0-71af4c65fbd0", "rel": "self"}, {"href": "http://localhost/portgroups/389e7d66-b278-4485-91b0-71af4c65fbd0", "rel": "bookmark"}]}, {"uuid": "361409f6-f69e-4bf0-a572-bf2f57285989", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/361409f6-f69e-4bf0-a572-bf2f57285989", "rel": "self"}, {"href": "http://localhost/portgroups/361409f6-f69e-4bf0-a572-bf2f57285989", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.062593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2a67166-30c7-40a3-a812-6f9cf9d5d6fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.045124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e907a8f-615a-4471-86a8-183034e1604d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/d5f00c26-e7ff-4782-b76a-0cdedfcff7a4", "rel": "self"}, {"href": "http://localhost/portgroups/d5f00c26-e7ff-4782-b76a-0cdedfcff7a4", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/42c95f50-3d0c-44ee-8f88-6a91893b6174", "rel": "self"}, {"href": "http://localhost/portgroups/42c95f50-3d0c-44ee-8f88-6a91893b6174", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=42c95f50-3d0c-44ee-8f88-6a91893b6174"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden [0.062249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d22b2ba5-678b-4bf3-b412-fe6b1fa5134b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "75af1033-165a-429b-a060-f2695afbb819", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/75af1033-165a-429b-a060-f2695afbb819", "rel": "self"}, {"href": "http://localhost/nodes/75af1033-165a-429b-a060-f2695afbb819", "rel": "bookmark"}]}, {"uuid": "3932934c-28d9-4241-bebd-19eec6a3ba58", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/3932934c-28d9-4241-bebd-19eec6a3ba58", "rel": "self"}, {"href": "http://localhost/nodes/3932934c-28d9-4241-bebd-19eec6a3ba58", "rel": "bookmark"}]}, {"uuid": "a40d6890-b6af-4f2f-a325-4d0e8139a5ec", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a40d6890-b6af-4f2f-a325-4d0e8139a5ec", "rel": "self"}, {"href": "http://localhost/nodes/a40d6890-b6af-4f2f-a325-4d0e8139a5ec", "rel": "bookmark"}]}, {"uuid": "f47eef69-a0a0-434e-bcec-a774930efa29", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f47eef69-a0a0-434e-bcec-a774930efa29", "rel": "self"}, {"href": "http://localhost/nodes/f47eef69-a0a0-434e-bcec-a774930efa29", "rel": "bookmark"}]}, {"uuid": "7aacf3bf-8a17-490d-bb54-c7bae07443f7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/7aacf3bf-8a17-490d-bb54-c7bae07443f7", "rel": "self"}, {"href": "http://localhost/nodes/7aacf3bf-8a17-490d-bb54-c7bae07443f7", "rel": "bookmark"}]}, {"uuid": "57eebcfd-188c-4600-8099-4f1b8726b601", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/57eebcfd-188c-4600-8099-4f1b8726b601", "rel": "self"}, {"href": "http://localhost/nodes/57eebcfd-188c-4600-8099-4f1b8726b601", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.040388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1b906ed9-ba7b-46b2-b3db-fd31becce569 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.036351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-448df102-998f-4366-89b8-fff7ffe0ee8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.156892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c87904a2-4692-422b-b6c3-e407142c4162 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:36.901455+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.046159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5dfd966b-f6dd-435b-a73d-28f2c28fb871 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.039961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6bc0682-f77f-4437-b9be-dc08140d588a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:36.939879+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d484d69a-834e-486d-9713-b61b148e2a2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.2 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:36.939879+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.051934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ebcecbf-62df-4d3e-9881-f053e97fec04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:36.953484+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.045153s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-532c6587-baff-4702-96d5-a95a88e3f4b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "41b62a8c-c15e-4c95-82e6-7af55992917e", "instance_uuid": "da35c566-fe17-4683-88cb-22b051da72a6", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/41b62a8c-c15e-4c95-82e6-7af55992917e", "rel": "self"}, {"href": "http://localhost/nodes/41b62a8c-c15e-4c95-82e6-7af55992917e", "rel": "bookmark"}]}, {"uuid": "fe664dab-dcea-4b1d-b951-09f3aa749b8d", "instance_uuid": "d820c5f4-8b2c-494d-bf1b-a5cad8a761ea", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fe664dab-dcea-4b1d-b951-09f3aa749b8d", "rel": "self"}, {"href": "http://localhost/nodes/fe664dab-dcea-4b1d-b951-09f3aa749b8d", "rel": "bookmark"}]}, {"uuid": "4723559e-d04e-4959-9821-394dae945d60", "instance_uuid": "3629fafe-81fa-49bd-816b-559a463adbd5", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4723559e-d04e-4959-9821-394dae945d60", "rel": "self"}, {"href": "http://localhost/nodes/4723559e-d04e-4959-9821-394dae945d60", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=4723559e-d04e-4959-9821-394dae945d60"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.084328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': 'd4b05900-6114-48ea-bf6a-245486d63ad8', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4f4893b8-0578-45cd-82c7-81d244457a96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d4b05900-6114-48ea-bf6a-245486d63ad8 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.403617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/809d9c0f-368e-470b-95c2-351d5864114e WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da227cf6-46ae-4ba0-af8d-1a98cdded1cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "809d9c0f-368e-470b-95c2-351d5864114e", "created_at": "2025-05-19T19:09:36.967602+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": true, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/809d9c0f-368e-470b-95c2-351d5864114e", "rel": "self"}, {"href": "http://localhost/nodes/809d9c0f-368e-470b-95c2-351d5864114e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/809d9c0f-368e-470b-95c2-351d5864114e/ports", "rel": "self"}, {"href": "http://localhost/nodes/809d9c0f-368e-470b-95c2-351d5864114e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/809d9c0f-368e-470b-95c2-351d5864114e/states", "rel": "self"}, {"href": "http://localhost/nodes/809d9c0f-368e-470b-95c2-351d5864114e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/809d9c0f-368e-470b-95c2-351d5864114e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/809d9c0f-368e-470b-95c2-351d5864114e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/809d9c0f-368e-470b-95c2-351d5864114e/volume", "rel": "self"}, {"href": "http://localhost/nodes/809d9c0f-368e-470b-95c2-351d5864114e/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.053689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea53fb0e-7f99-41d1-8073-90ebec8a0d23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "47cbea7b-9611-4bb3-aec0-15b6de702ff0", "created_at": "2025-05-19T19:09:37.035093+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "02a13750-2cb2-49cd-9dfa-b0a0d9e98c5b", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/47cbea7b-9611-4bb3-aec0-15b6de702ff0", "rel": "self"}, {"href": "http://localhost/nodes/47cbea7b-9611-4bb3-aec0-15b6de702ff0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/47cbea7b-9611-4bb3-aec0-15b6de702ff0/ports", "rel": "self"}, {"href": "http://localhost/nodes/47cbea7b-9611-4bb3-aec0-15b6de702ff0/ports", "rel": "bookmark"}]}, {"uuid": "a3fed501-db91-4f3c-8ac5-ccc6b5e54c01", "created_at": "2025-05-19T19:09:37.039072+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "b6dd7f7f-0783-43cd-8812-32765b6eda6f", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a3fed501-db91-4f3c-8ac5-ccc6b5e54c01", "rel": "self"}, {"href": "http://localhost/nodes/a3fed501-db91-4f3c-8ac5-ccc6b5e54c01", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3fed501-db91-4f3c-8ac5-ccc6b5e54c01/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3fed501-db91-4f3c-8ac5-ccc6b5e54c01/ports", "rel": "bookmark"}]}, {"uuid": "97d268df-d077-44fa-a06b-f602a43c4d32", "created_at": "2025-05-19T19:09:37.040511+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "d84f1a3d-3bb2-4bf4-acb2-c0b263097e2c", "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/97d268df-d077-44fa-a06b-f602a43c4d32", "rel": "self"}, {"href": "http://localhost/nodes/97d268df-d077-44fa-a06b-f602a43c4d32", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/97d268df-d077-44fa-a06b-f602a43c4d32/ports", "rel": "self"}, {"href": "http://localhost/nodes/97d268df-d077-44fa-a06b-f602a43c4d32/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=97d268df-d077-44fa-a06b-f602a43c4d32"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.089522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba26f47d-0e25-42fd-b5b5-a308a867ab5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"address": "52:54:00:cf:2d:31", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.030800s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.113943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-92b892b0-fe76-4d00-bcad-2a5fd6f32f24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.073480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51a504cf-8642-42f2-8c36-1d5817142551 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.104998+00:00", "updated_at": null, "automated_clean": false, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.037259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bce5de8b-5db9-4de0-9b0a-893b1a01626d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.110142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-691b5b1d-1174-44ae-9d86-2425c2f712d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "3529a273-6105-4c9f-9c0c-99e0a244802a", "created_at": "2025-05-19T19:09:37.080091+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a", "rel": "self"}, {"href": "http://localhost/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/ports", "rel": "self"}, {"href": "http://localhost/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/states", "rel": "self"}, {"href": "http://localhost/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/volume", "rel": "self"}, {"href": "http://localhost/nodes/3529a273-6105-4c9f-9c0c-99e0a244802a/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.061469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7d6f2b1-bf42-4890-8423-aa056b5824a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.174216+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4da63401-2354-44be-ace8-f5913ad8101d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.174216+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "targe t_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.097069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b354abb7-1e0a-4c80-9c29-c56e4607d6d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.047276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33c664cc-6a63-4e36-9167-724ffa586f43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.227739+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.057223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35d12363-d792-44aa-b988-78ab0e84197f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.281389+00:00", "updated_at": null, "automated_clean": true, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.086174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-16a5c4fa-6c55-4c69-9c69-a8c9946ecda4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.077730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-901a2a02-ce5c-46a7-99f1-fcefb131151b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.344842+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed7ff3c3-326a-4314-b4e8-ca64fdae17eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.344842+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nod es/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.084227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c7a2446f-59c9-4085-8bca-b8b1e3c5e677 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'} is not valid under any of the given schemas. Possible root cause: Additional properties are not allowed ('switch_foo' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string [0.282349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2717a8a0-0831-41b4-b87b-023fd1172826 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea", "created_at": "2025-05-19T19:09:37.298033+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea", "rel": "self"}, {"href": "http://localhost/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/ports", "rel": "self"}, {"href": "http://localhost/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/states", "rel": "self"}, {"href": "http://localhost/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/volume", "rel": "self"}, {"href": "http://localhost/nodes/c0af5cc6-8c4b-4d43-b3ab-3c6fb7925eea/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.090493s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3fff9097-ae92-41a1-bb52-9e8c759727d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "9916e493-f7d6-4bdc-9d11-6466e16395d4", "created_at": "2025-05-19T19:09:37.432631+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": "bios", "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4", "rel": "self"}, {"href": "http://localhost/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/ports", "rel": "self"}, {"href": "http://localhost/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/states", "rel": "self"}, {"href": "http://localhost/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/volume", "rel": "self"}, {"href": "http://localhost/nodes/9916e493-f7d6-4bdc-9d11-6466e16395d4/volume", "rel": "bookmark"}]} GET /v1/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71a437ce-2493-4e02-9dd5-19ff3a817ee3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "64ec234d-47a3-4d3e-ba0d-85bb03aea294", "created_at": "2025-05-19T19:09:37.450956+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": "uefi", "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {} , "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294", "rel": "self"}, {"href": "http://localhost/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/ports", "rel": "self"}, {"href": "http://localhost/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/states", "rel": "self"}, {"href": "http://localhost/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/volume", "rel": "self"}, {"href": "http://localhost/nodes/64ec234d-47a3-4d3e-ba0d-85bb03aea294/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_double_json_in_name [0.340980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c28b1f80-1ee7-4f63-8290-a42c8f552961 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:37.465217+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.json.json", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.127875s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-d28a8f28-7993-4af4-a9b2-83376fe9e0db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:37.502221+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9886931-8287-47dd-9d0e-53b51cb833de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:37.502221+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.038828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc0fe262-6b8c-423c-bf88-e7c824b6a8bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:37.504667+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.109339s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ee78c2d3-e897-4f21-80c7-4c0b234aa2c8 WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2c1e0a74-2abe-483c-b86c-2f051be90fa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid protected: Unrecognized value 'YeahNahGood', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.079190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57b4c1c2-ab64-4a25-a37f-c9ca218e0708 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.513582+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f95111c-d3ef-45d1-bb95-7e1e81b50fee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.513582+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field [0.050395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-203e25af-51a4-49ff-9af3-9e3adc67e003 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.579281+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.091125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-505e1900-4a2a-4f7c-a2c0-e0a57385fd58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:37.600144+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.json", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.038998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=b2313cb2-959d-4cda-be90-23ac056fb98e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0935fb47-1696-4957-8100-4272c3d2d1b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"nodes": [{"uuid": "43e0db41-9f22-40e5-a03d-6b121686f398", "instance_uuid": "b2313cb2-959d-4cda-be90-23ac056fb98e", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/43e0db41-9f22-40e5-a03d-6b121686f398", "rel": "self"}, {"href": "http://localhost/nodes/43e0db41-9f22-40e5-a03d-6b121686f398", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.114099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-6f2749aa-e246-45d8-99a2-94e2a9b9d9dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:37.619559+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.113390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}, {'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85160bcd-bf12-4e6d-89aa-0a2dfa28f18e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9", "created_at": "2025-05-19T19:09:37.591505+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9", "rel": "self"}, {"href": "http://localhost/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/states", "rel": "self"}, {"href": "http://localhost/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/volume", "rel": "self"}, {"href": "http://localhost/nodes/20e2efa4-5cf9-4e66-a68d-80aa5c7ef5c9/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.046881s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1ba71b69-aab4-4275-a76d-89c8b5097345 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for instance_uuid: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.048873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=c53d6461-20f1-4006-a248-7868b8141a73 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b790197-7bcf-4f5d-b26e-e2d209e41065 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_not_found [0.113612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ecbbb217-ccf1-42d7-9551-b18ada45b764 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4.json could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.041678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08e9570d-40db-4398-9a84-f1f96042a09b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.760629+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61e3065b-3a91-42f1-85c2-f438df092a1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.760629+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.153588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3cac7fe9-399d-453a-b1aa-2417414e7569 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e9c4845-f282-428b-8d19-2550038d4137 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "3cac7fe9-399d-453a-b1aa-2417414e7569", "created_at": "2025-05-19T19:09:37.744518+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/3cac7fe9-399d-453a-b1aa-2417414e7569", "rel": "self"}, {"href": "http://localhost/nodes/3cac7fe9-399d-453a-b1aa-2417414e7569", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3cac7fe9-399d-453a-b1aa-2417414e7569/ports", "rel": "self"}, {"href": "http://localhost/nodes/3cac7fe9-399d-453a-b1aa-2417414e7569/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3cac7fe9-399d-453a-b1aa-2417414e7569/states", "rel": "self"}, {"href": "http://localhost/nodes/3cac7fe9-399d-453a-b1aa-2417414e7569/states", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.099990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7bf95bb-5581-4176-b676-37feb3aa7230 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:37.791451+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.067547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6435183-42e4-4ea0-bb32-c69dbd4fc9a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.815736+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5d439db-81e6-4816-a42c-904ba4001ec5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.815736+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_inter face": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.209496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-4b551b58-29e1-40cb-9d7e-731908d5f732 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:37.820709+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.054528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11d42176-f911-4e19-b77e-b7ef22c3ec83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.43 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.881586+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-098f7473-f89d-41e9-a395-17b166fd6517 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.44 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.881586+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.040416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-654c2bda-1b5d-49a3-a680-b7fe55ccba4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.929178+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.131981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/5998b83d-2061-403f-8fa5-dd0c8af4653b WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b86f1f5-1db6-43cf-bef4-8df736131f73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "5998b83d-2061-403f-8fa5-dd0c8af4653b", "created_at": "2025-05-19T19:09:37.883098+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/5998b83d-2061-403f-8fa5-dd0c8af4653b", "rel": "self"}, {"href": "http://localhost/nodes/5998b83d-2061-403f-8fa5-dd0c8af4653b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5998b83d-2061-403f-8fa5-dd0c8af4653b/ports", "rel": "self"}, {"href": "http://localhost/nodes/5998b83d-2061-403f-8fa5-dd0c8af4653b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5998b83d-2061-403f-8fa5-dd0c8af4653b/states", "rel": "self"}, {"href": "http://localhost/nodes/5998b83d-2061-403f-8fa5-dd0c8af4653b/states", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.117438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e47feaea-2957-4998-b952-1d2827396b36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "27d107cb-6b6f-4c2b-9d15-222314c759ee", "created_at": "2025-05-19T19:09:37.873944+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee", "rel": "self"}, {"href": "http://localhost/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee/ports", "rel": "self"}, {"href": "http://localhost/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee/ports", "rel": "bookmark"}]} GET /v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb6d5e7e-18d0-4c98-87f2-7eb92004016b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "27d107cb-6b6f-4c2b-9d15-222314c759ee", "created_at": "2025-05-19T19:09:37.873944+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee", "rel": "self"}, {"href": "http://localhost/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee/ports", "rel": "self"}, {"href": "http://localhost/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee/ports", "rel": "bookmark"}]} GET /portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4bf5c4a-6692-4d59-8fc4-80d23d53fd68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "27d107cb-6b6f-4c2b-9d15-222314c759ee", "created_at": "2025-05-19T19:09:37.873944+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee", "rel": "self"}, {"href": "http://localhost/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee/ports", "rel": "self"}, {"href": "http://localhost/portgroups/27d107cb-6b6f-4c2b-9d15-222314c759ee/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.114738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5b7268f4-c886-4d96-abd9-467e73557aa5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:37.963302+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_false_field [0.044964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1463cdc-2600-427c-b946-1f67144d0342 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:37.974772+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.062306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2b166348-e153-4ef2-a1ca-59374db560a1 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-59bc268e-3168-488d-8ba9-070e3e258321 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.075453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-760f15ba-862e-4133-9ce0-9131dfa3829b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "9c2bed71-099c-4a48-8fc7-5322a726cf9f", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/9c2bed71-099c-4a48-8fc7-5322a726cf9f", "rel": "self"}, {"href": "http://localhost/portgroups/9c2bed71-099c-4a48-8fc7-5322a726cf9f", "rel": "bookmark"}]}, {"uuid": "59ffa42b-1456-4b4d-abce-51e6cdd6ac3c", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/59ffa42b-1456-4b4d-abce-51e6cdd6ac3c", "rel": "self"}, {"href": "http://localhost/portgroups/59ffa42b-1456-4b4d-abce-51e6cdd6ac3c", "rel": "bookmark"}]}, {"uuid": "ae9da52d-a50a-4c21-aa61-0442bb41c622", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/ae9da52d-a50a-4c21-aa61-0442bb41c622", "rel": "self"}, {"href": "http://localhost/portgroups/ae9da52d-a50a-4c21-aa61-0442bb41c622", "rel": "bookmark"}]}, {"uuid": "6a591735-e0e8-4e63-a9cf-1394a4cd0cea", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/6a591735-e0e8-4e63-a9cf-1394a4cd0cea", "rel": "self"}, {"href": "http://localhost/portgroups/6a591735-e0e8-4e63-a9cf-1394a4cd0cea", "rel": "bookmark"}]}, {"uuid": "c072784f-9fb3-4e84-a953-530aa63f5d02", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/c072784f-9fb3-4e84-a953-530aa63f5d02", "rel": "self"}, {"href": "http://localhost/portgroups/c072784f-9fb3-4e84-a953-530aa63f5d02", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_hidden_in_lower_version [0.045097s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77a59174-7cb9-43d2-ab48-0e2eeb7c414f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.94 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.011255+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-459bf7d3-e9e9-416e-9883-32c4d55e31e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.011255+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error" : null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.037150s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6efa6b56-ad7a-4acc-991f-0d10ef64f6d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.125758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-37f0ce01-d110-48b3-81ef-61546e5466bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_null_field [0.079049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f9604e0-8175-4345-bc07-8df6ca120d06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.089160+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.135832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fd4ea59f-7f86-4a76-b6d1-410de1a6af0c WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e685013-fdae-4707-9c94-a1b911caafa1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.079232s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?address=aa:bb:cc:dd:ee:f1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef3bcf56-704a-465e-87d4-dcb024e63d37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "7259faef-24f9-4f0a-afdf-a7321c983d70", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/7259faef-24f9-4f0a-afdf-a7321c983d70", "rel": "self"}, {"href": "http://localhost/portgroups/7259faef-24f9-4f0a-afdf-a7321c983d70", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.083303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-64b7c832-5ec1-4395-bbe5-65730d5e6d11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:38.170924+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.042451s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb2e3261-9e88-436c-b2bd-99e7bda2a448 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_true_field [0.106429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7d6bb2f-1d81-434d-bad6-4ac5610e8222 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.195536+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": true, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_both_node_ident_and_node_uuid [0.053537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'node_ident': 'test-node-name'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f4547043-396c-4cb6-8fd5-afd948e3f7f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'node_ident': 'test-node-name'} is valid under each of {'required': ['node_uuid']}, {'required': ['node_ident']}\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.042812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?address=aa:bb:cc:dd:ee:ff WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9068321-e395-440f-8a57-fb1f7ad783c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired [0.110098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd7dbae7-749d-47a9-996c-3960b6b607ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "aa1dd370-33dd-4e58-8da5-b279cb046f18", "created_at": "2025-05-19T19:09:38.178135+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18", "rel": "self"}, {"href": "http://localhost/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/ports", "rel": "self"}, {"href": "http://localhost/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/states", "rel": "self"}, {"href": "http://localhost/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/volume", "rel": "self"}, {"href": "http://localhost/nodes/aa1dd370-33dd-4e58-8da5-b279cb046f18/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.036118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-99563546-4f80-4e35-9397-bc4bab44e431 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.043522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-abd1ae0e-f0e9-4416-8ef5-1671385d3b5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.051944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/066d659b-47cd-45e3-82dd-a5396dc0a0a3 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-92a1b162-637b-40e6-97e6-e6c920622e5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.096324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73331b69-9c1e-4e57-aca9-14fe630743cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.270212+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e51de48-a212-494a-b65e-617c8d6deb14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.270212+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "lin ks": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.055080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c3fc908a-ad30-460c-9be6-139a07a1c20e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.114600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/691706ed-cc2f-4224-8f11-6db316ee73d9/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c8d66bb-79b1-44e0-999b-792352d16f6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "d985b3bf-27b3-4625-91e9-34613d0c6319", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d985b3bf-27b3-4625-91e9-34613d0c6319", "rel": "self"}, {"href": "http://localhost/ports/d985b3bf-27b3-4625-91e9-34613d0c6319", "rel": "bookmark"}]}, {"uuid": "e7c8485d-8b40-4e93-b729-90186c3998c8", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e7c8485d-8b40-4e93-b729-90186c3998c8", "rel": "self"}, {"href": "http://localhost/ports/e7c8485d-8b40-4e93-b729-90186c3998c8", "rel": "bookmark"}]}]} GET /v1/portgroups/691706ed-cc2f-4224-8f11-6db316ee73d9/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6df1a0b-65f6-4fdf-949c-1d95e765feb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "d985b3bf-27b3-4625-91e9-34613d0c6319", "created_at": "2025-05-19T19:09:38.311531+00:00", "updated_at": null, "address": "52:54:00:cf:2d:30", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/d985b3bf-27b3-4625-91e9-34613d0c6319", "rel": "self"}, {"href": "http://localhost/ports/d985b3bf-27b3-4625-91e9-34613d0c6319", "rel": "bookmark"}], "portgroup_uuid": "691706ed-cc2f-4224-8f11-6db316ee73d9"}, {"uuid": "e7c8485d-8b40-4e93-b729-90186c3998c8", "created_at": "2025-05-19T19:09:38.314780+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/e7c8485d-8b40-4e93-b729-90186c3998c8", "rel": "self"}, {"href": "http://localhost/ports/e7c8485d-8b40-4e93-b729-90186c3998c8", "rel": "bookmark"}], "portgroup_uuid": "691706ed-cc2f-4224-8f11-6db316ee73d9"}]} GET /v1/portgroups/691706ed-cc2f-4224-8f11-6db316ee73d9/ports?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4469414-d6d4-424d-bd22-5293edfb6b44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "d985b3bf-27b3-4625-91e9-34613d0c6319", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d985b3bf-27b3-4625-91e9-34613d0c6319", "rel": "self"}, {"href": "http://localhost/ports/d985b3bf-27b3-4625-91e9-34613d0c6319", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=d985b3bf-27b3-4625-91e9-34613d0c6319"} GET /v1/portgroups/691706ed-cc2f-4224-8f11-6db316ee73d9/ports/13945b05-aa2a-4a82-aa3f-789842133a7c WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET /v1/portgroups/691706ed-cc2f-4224-8f11-6db316ee73d9/ports/8a709bd5-8fb2-4336-84b9-7e9bee7645c2 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-73eacfef-69e8-413a-8ee2-022dc3dab845 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debug info\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.107984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1 WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a53eaebc-162a-4b60-b69c-791423faf4cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "e117e601-4b18-4cea-b7d1-a678ad2c3bb1", "created_at": "2025-05-19T19:09:38.357795+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": true, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1", "rel": "self"}, {"href": "http://localhost/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/ports", "rel": "self"}, {"href": "http://localhost/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/states", "rel": "self"}, {"href": "http://localhost/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/volume", "rel": "self"}, {"href": "http://localhost/nodes/e117e601-4b18-4cea-b7d1-a678ad2c3bb1/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.056732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/f4899e1d-68e7-41e6-9fb4-77b994b40e29/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.038989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.169575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a35192f-1a5d-41f8-ba38-5ab75e228233 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.409957+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspecting", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d21a22e7-8d58-4c0e-8d3a-a8102422f91d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.409957+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspect wait", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2 e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove [0.095606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/660aeca8-5894-47fb-b85d-0d69f1728619 WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50536a02-c716-4584-9a0b-3419bae81237 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "660aeca8-5894-47fb-b85d-0d69f1728619", "created_at": "2025-05-19T19:09:38.460264+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/660aeca8-5894-47fb-b85d-0d69f1728619", "rel": "self"}, {"href": "http://localhost/nodes/660aeca8-5894-47fb-b85d-0d69f1728619", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/ports", "rel": "self"}, {"href": "http://localhost/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/states", "rel": "self"}, {"href": "http://localhost/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/volume", "rel": "self"}, {"href": "http://localhost/nodes/660aeca8-5894-47fb-b85d-0d69f1728619/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.055601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5b6e9ac-ce6f-463c-b039-62166fa03f41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.042694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5976da1c-d933-41bb-8a84-9d353427b6e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "1d7ae40d-0415-4ee1-9414-2620229ceabf", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/1d7ae40d-0415-4ee1-9414-2620229ceabf", "rel": "self"}, {"href": "http://localhost/portgroups/1d7ae40d-0415-4ee1-9414-2620229ceabf", "rel": "bookmark"}]}, {"uuid": "da58f036-929d-4791-be61-00daff352d1d", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/da58f036-929d-4791-be61-00daff352d1d", "rel": "self"}, {"href": "http://localhost/portgroups/da58f036-929d-4791-be61-00daff352d1d", "rel": "bookmark"}]}, {"uuid": "e45896d1-4337-4380-a04b-c88cf22b1f7e", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/e45896d1-4337-4380-a04b-c88cf22b1f7e", "rel": "self"}, {"href": "http://localhost/portgroups/e45896d1-4337-4380-a04b-c88cf22b1f7e", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.239934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'hostname': 'host1', 'port_id': 'rep0-0'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-889002b1-6bbf-4173-b629-d4357c3eed11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:38.551572+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": true, "local_link_connection": {"hostname": "host1", "port_id": "rep0-0"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.111366s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-720a19ec-0895-4965-8d3d-954ec60e4805 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.558301+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason [0.114711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}, {'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-690cf6c7-a61d-409a-93db-79322a9a6f48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "7ddb8819-104f-4829-9241-3e7011f2aa87", "created_at": "2025-05-19T19:09:38.564451+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87", "rel": "self"}, {"href": "http://localhost/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/ports", "rel": "self"}, {"href": "http://localhost/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/states", "rel": "self"}, {"href": "http://localhost/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/volume", "rel": "self"}, {"href": "http://localhost/nodes/7ddb8819-104f-4829-9241-3e7011f2aa87/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.080780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42235a9e-fadd-4e88-b856-79320153a73a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "1624cbef-930c-4804-a38f-acd61a69ba8d", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/1624cbef-930c-4804-a38f-acd61a69ba8d", "rel": "self"}, {"href": "http://localhost/portgroups/1624cbef-930c-4804-a38f-acd61a69ba8d", "rel": "bookmark"}]}, {"uuid": "895ac699-54bb-4794-9dc4-cefe3d7e785f", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/895ac699-54bb-4794-9dc4-cefe3d7e785f", "rel": "self"}, {"href": "http://localhost/portgroups/895ac699-54bb-4794-9dc4-cefe3d7e785f", "rel": "bookmark"}]}, {"uuid": "a29484ab-f7e4-4f6c-8dc9-3e37ea39e933", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/a29484ab-f7e4-4f6c-8dc9-3e37ea39e933", "rel": "self"}, {"href": "http://localhost/portgroups/a29484ab-f7e4-4f6c-8dc9-3e37ea39e933", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version [0.091145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-428a94b6-d6ba-4db0-8d58-b7c7b6b4b73b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.650331+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1704b2a-49ac-4abe-897c-87ba71115687 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.650331+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x 86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.073686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'power_state': 'new state'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d1a078f9-ab33-422a-8d4a-1c801fdac207 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: Additional properties are not allowed ('power_state' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid [0.047726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6bd54ac2-1f62-4441-9343-d7682a3c2517 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/portgroups?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21658c38-a456-4278-84b0-14de5bcee46d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/portgroups?sort_key=internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5d5e9c36-b6d9-46b8-9767-985043cfc3f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/portgroups?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c3aa85e1-503c-4480-96b1-7f2ea670ed84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.155590s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-dc2b3352-7290-47f2-8ef5-d0b5c6757754 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:38.717259+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.064896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-70ac9e20-62f5-41b1-a940-58b9dcc30708 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.090872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-913e48b4-1677-4eb5-8334-1287d04226a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.750722+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.061838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77be1529-0e10-4689-8567-cf3f774f7615 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:38.815699+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present [0.076054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-373fa8e7-8fa0-4345-8901-b2523a36002a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.827790+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "some-lucky-project", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.156079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5394a2e0-d067-4825-aa8e-754fd3c7be72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fdfa9189-c0bc-454c-ac80-d49d67629ae1", "created_at": "2025-05-19T19:09:38.757400+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1", "rel": "self"}, {"href": "http://localhost/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/ports", "rel": "self"}, {"href": "http://localhost/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/states", "rel": "self"}, {"href": "http://localhost/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/volume", "rel": "self"}, {"href": "http://localhost/nodes/fdfa9189-c0bc-454c-ac80-d49d67629ae1/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.130791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e878e61f-d76d-49b4-b800-9d9557c71c4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.049786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1b7178c0-2c2e-4751-b55c-19f08b7db34d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.073412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b1f11faf-4ff6-4c3c-a715-78b197ced423 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d55dd5af-ceb1-486f-8c57-922cb65007bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data [0.076092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6742ad0c-32d0-45cc-ae34-2ba6f50265a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "306e49c2-570e-4a26-99dd-94f5122c5a33", "created_at": "2025-05-19T19:09:38.911319+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {"links": [{"id": "interface2", "type": "vif", "ethernet_mac_address": "a0:36:9f:2c:e8:70", "vif_id": "e1c90e9f-eafc-4e2d-8ec9-58b91cebb53d", "mtu": 1500}, {"id": "interface0", "type": "phy", "ethernet_mac_address": "a0:36:9f:2c:e8:80", "mtu": 9000}, {"id": "interface1", "type": "phy", "ethernet_mac_address": "a0:36:9f:2c:e8:81", "mtu": 9000}, {"id": "bond0", "type": "bond", "bond_links": ["interface0", "interface1"], "ethernet_mac_address": "a0:36:9f:2c:e8:82", "bond_mode": "802.3ad", "bond_xmit_hash_policy": "layer3+4", "bond_miimon": 100}, {"id": "vlan0", "type": "vlan", "vlan_link": "bond0", "vlan_id": 101, "vlan_mac_address": "a0:36:9f:2c:e8:80", "vif_id": "e1c90e9f-eafc-4e2d-8ec9-58b91cebb53f"}], "networks": [{"id": "private-ipv4", "type": "ipv4", "link": "interface0", "ip_address": "10.184.0.244", "netmask": "255.255.240.0", "routes": [{"network": "10.0.0.0", "netmask": "255.0.0.0", "gateway": "11.0.0.1"}, {"network": "0.0.0.0", "netmask": "0.0.0.0", "gateway": "23.253.157.1"}], "network_id": "da5bb487-5193-4a65-a3df-4a0055a8c0d7"}, {"id": "private-ipv4", "type": "ipv6", "link": "interface0", "ip_address": "2001:cdba::3257:9652/24", "routes": [{"network": "::", "netmask": "::", "gateway": "fd00::1"}, {"network": "::", "netmask": "ffff:ffff:ffff::", "gateway": "fd00::1:1"}], "network_id": "da5bb487-5193-4a65-a3df-4a0055a8c0d8"}, {"id": "publicnet-ipv4", "type": "ipv4", "link": "vlan0", "ip_address": "23.253.157.244", "netmask": "255.255.255.0", "dns_nameservers": ["69.20.0.164", "69.20.0.196"], "routes": [{"network": "0.0.0.0", "netmask": "0.0.0.0", "gateway": "23.253.157.1"}], "network_id": "62611d6f-66cb-4270-8b1f-503ef0dd4736"}], "services": [{"type": "dns", "address": "8.8.8.8"}, {"type": "dns", "address": "8.8.4.4"}]}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33", "rel": "self"}, {"href": "http://localhost/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/ports", "rel": "self"}, {"href": "http://localhost/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/states", "rel": "self"}, {"href ": "http://localhost/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/volume", "rel": "self"}, {"href": "http://localhost/nodes/306e49c2-570e-4a26-99dd-94f5122c5a33/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.067595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4ea731c-7e52-4aad-b5c0-f9aa80397bf3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:38.931413+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.121803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-91cfd725-6abf-4db9-b959-dc4504ba9d90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.052047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ae94288-6b3a-461d-970c-fddd27230e7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:38.991307+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.091034s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8f3e1950-44b4-49fc-a981-f078bd74eb66 WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-173d01aa-6a70-43c0-ab05-ea5ad76cea13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /traits. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version [0.111219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e59b757c-4fb7-4b4b-91c7-d6dcfa1ca0e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.998223+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a64e154-00c2-48f3-b7d6-bc5fd848aa92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:38.998223+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.042424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4c75c08-e7f5-4139-abf6-a3664206f713 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.086127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d0dd84a-0c9c-4be2-ab15-df4e4ad631af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.094220+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0ff424a-bf8b-4cc7-b230-7536ab474382 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.094220+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_upd ated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.118320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1785639d-6c15-486e-b00e-67a679659dd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.116510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True WITH [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-91fd9c3b-5cd3-4248-bcda-6003e4fa4fc1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.058317+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.090966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5618cce5-d66e-47e5-8a73-15a11b0ac80f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:39.112229+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.089002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba06583b-c777-4cbf-9acf-fe9e2659314f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.192750+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.106206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/mode', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9fc68f0e-55c6-4fbf-9dd7-22dc85e78a4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.136608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-682aa036-5c2b-4057-b90b-27171300b379 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37d2e931-a9c0-4fc1-9690-6d313993d2b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.073428s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/foo1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73d3a602-b28b-4586-a2fa-7011d28e01b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:39.285850+00:00", "updated_at": "2025-05-19T19:09:39.294241+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef70ab71-78c3-4114-a992-de06738e1189 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:39.285850+00:00", "updated_at": "2025-05-19T19:09:39.294241+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.192039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a488f1fb-fa20-461c-94fa-5da315a0c42a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.112033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'automated_clean': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-7c88ca53-eb38-4221-a35c-2434f4c47791 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.364807+00:00", "updated_at": null, "automated_clean": true, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c85b6da5-a238-4513-9215-d94eb548ca52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.364807+00:00", "updated_at": null, "automated_clean": true, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.157653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60f1b243-d42a-41ea-a28e-da4adf9d7bb0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.349566+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": "akindofmagic", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.072216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/node_id', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d101938-ce70-44f6-badd-1b5abee15376 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.062061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/047a82eb-838f-4776-9431-e0666551fb21 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7146c61f-d240-42ba-bb07-6e0912bd4cf8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "047a82eb-838f-4776-9431-e0666551fb21", "created_at": "2025-05-19T19:09:39.430383+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": true, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/047a82eb-838f-4776-9431-e0666551fb21", "rel": "self"}, {"href": "http://localhost/nodes/047a82eb-838f-4776-9431-e0666551fb21", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/047a82eb-838f-4776-9431-e0666551fb21/ports", "rel": "self"}, {"href": "http://localhost/nodes/047a82eb-838f-4776-9431-e0666551fb21/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/047a82eb-838f-4776-9431-e0666551fb21/states", "rel": "self"}, {"href": "http://localhost/nodes/047a82eb-838f-4776-9431-e0666551fb21/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/047a82eb-838f-4776-9431-e0666551fb21/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/047a82eb-838f-4776-9431-e0666551fb21/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/047a82eb-838f-4776-9431-e0666551fb21/volume", "rel": "self"}, {"href": "http://localhost/nodes/047a82eb-838f-4776-9431-e0666551fb21/volume", "rel": "bookmark"}]} GET /v1/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f9e439f-850c-4d05-8158-5c37671a50db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "fd4499ef-5ab2-4674-9fe3-6d62d04791d1", "created_at": "2025-05-19T19:09:39.443260+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1", "rel": "self"}, {"href": "http://localhost/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/states", "rel": "self"}, {"href": "http://localhost/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/fd4499ef-5ab2-4674-9fe3-6d62d04791d1/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.093401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'automated_clean': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c163f51b-1f7f-4243-80d4-ba7885505ae2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc [0.154593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'network_type': 'unmanaged'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-9436607a-ea35-4e9e-a930-67d8af6d3f3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:39.477518+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.107324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa3943ba-f31d-475a-af08-74d28fb1b6fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.061527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'network_type': 'unmanaged'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6cfd0612-a2a0-439d-aa91-17a2ae74054c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.093338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc773fb4-ea6f-4db8-ba67-f9cd90a0106b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.524345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59ed1cdb-d01b-4fea-b8da-c60392e271ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.524345+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.056981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8da577b3-68b9-4087-9228-549865a988d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.585054+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13ff43ad-c78a-40dd-a85a-c3e5906351fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.585054+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.112340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-75e3d091-ebec-4e11-a445-bf31d5046b7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.141767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3efff7c0-a756-4f7e-994c-bd240031e8c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d103061c-c7ad-4dad-b736-734bf6ff921a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'd0b24b5c-8abc-4a72-a7eb-f58077b913d7', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7 Openstack-Request-Id: req-ba612ca6-61ad-43ca-a940-546bc8439c74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d0b24b5c-8abc-4a72-a7eb-f58077b913d7", "created_at": "2000-01-01T00:00:00+00:00", "upda ted_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7", "rel": "self"}, {"href": "http://localhost/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7/ports", "rel": "bookmark"}]} GET /v1/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e1733d8-e789-4ade-926f-388b23925739 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d0b24b5c-8abc-4a72-a7eb-f58077b913d7", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7", "rel": "self"}, {"href": "http://localhost/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0b24b5c-8abc-4a72-a7eb-f58077b913d7/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.042958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-317cde04-ca00-46ba-9946-0bf81b11d932 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.642982+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": true, "protected_reason": "reason!", "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident [0.110276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'node_ident': 'test-node-name'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-2e3032ae-a955-4e0c-9bdc-f988ece8b61c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:39.644753+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3f02503-ef98-4f45-9fa5-7c0bbc6ddb62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:39.644753+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.075884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d94ba439-5329-45f7-a616-c74b11294745 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired [0.066925s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00d4ef42-e15d-431e-b538-5a9a96d82353 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "d8e7a28b-7246-466c-8d4b-aa3bc7d9d099", "created_at": "2025-05-19T19:09:39.691655+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": true, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099", "rel": "self"}, {"href": "http://localhost/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/ports", "rel": "self"}, {"href": "http://localhost/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/states", "rel": "self"}, {"href": "http://localhost/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/volume", "rel": "self"}, {"href": "http://localhost/nodes/d8e7a28b-7246-466c-8d4b-aa3bc7d9d099/volume", "rel": "bookmark"}]} GET /v1/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d2eadce-eee2-46ff-98c4-048b752fe7bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "a3a31e35-eb81-498d-853b-0c5ae06832de", "created_at": "2025-05-19T19:09:39.711213+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de", "rel": "self"}, {"href": "http://localhost/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/ports", "rel": "self"}, {"href": "http://localhost/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/states", "rel": "self"}, {"href": "http://localhost/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/volume", "rel": "self"}, {"href": "http://localhost/nodes/a3a31e35-eb81-498d-853b-0c5ae06832de/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.127074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-309687af-54eb-4fcc-a597-6067c3f37b5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident_unsupported_api_version [0.091469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'node_ident': 'test-node-name'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-78d9c604-6d89-480b-8fe5-6bf3f3ce992f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.100546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-2164f0ac-99f5-4aad-94b3-fabd3bf0465e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.11 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.788599+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9eb55d42-5af6-4d95-8b31-f3c31fcaab47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.788599+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.062587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc001fcc-39d4-49e2-b44f-339af69a3aad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.750101+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85118616-8edf-479f-befe-20cb7196535c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.750101+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected ": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.081578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-830bc142-6ae4-4b35-828e-b1a16e76d693 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:39.796067+00:00", "updated_at": "2025-05-19T19:09:39.802757+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_uuid [0.116083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-9d1b4f3e-103f-4f38-b518-d6ae80df412e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:39.834690+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27ac262a-5b4d-4b22-8773-25ba0614b409 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:39.834690+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.071884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-998778cb-841f-41ab-b5a5-ad5071fe6181 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.080990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-eb6dce64-a7fa-4ac0-bef4-679efc95e29f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:39.941455+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.077112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3378918-44d4-4673-ab18-c89888103ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:39.931739+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.206324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8dcc09e6-e530-44da-9027-872a0b65e7b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.898192+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4e08024-606f-46e4-94a5-274525e94797 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.898192+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected ": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.058501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e97f577a-172e-48c3-bfda-81df92657fb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.090375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-409193ab-c105-41d6-8f7f-520008300820 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.042964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8cb29a7-0480-4267-a55a-fdc09c34fd0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:40.065871+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none [0.273318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-d3b962c3-beef-4116-9a2a-aaf12b64b4ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.961806+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f083c3b-9131-4d79-b79c-25b1de2a5cb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.961806+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99707832-a238-45f3-b296-9649bbc6dc1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:39.961806+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "i nspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.065589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5e81849d-6c91-4339-babf-673f944b9874 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.058447s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e99401ae-3d18-4637-8621-7f42950ac75a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.051218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ccdb810c-50d9-41bd-83fa-0b5f3655d448 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.157847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbb8f7a6-ab68-4af5-83fe-3c7f889e225d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.121424+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": true, "retired_reason": "warranty expired", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.041464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/52:54:00:cf:2d:31 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.079276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aba87a1a-6cf5-48bf-a9ea-217032b88ebd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:40.239244+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.034684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.043319s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/pg.1 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24668e5c-0fe1-4ea5-8b57-bbb42e47dc1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:40.327332+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.272927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'description': 'useful stuff', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-1419924a-4721-4e43-b4ae-867ceb0f6a46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.289475+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": "useful stuff", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06ca7812-425a-4098-9305-5f43a7f6342c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.289475+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fak e", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": "useful stuff", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.069761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/pg.1.json WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33f434fc-53e9-4303-a08c-9c77a8a9a9c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:40.379803+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.060390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82512e6b-c4d1-40ce-9fde-51a539bfe673 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:40.449565+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_without_node_or_node_uuid [0.310016s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-88b4f235-ec56-44ae-ae91-6d2286083a58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot [0.357698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad77264c-9e09-4146-9102-60cd20ff84bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "c1427b43-5398-4bbd-8d19-b89c2a61df0f", "created_at": "2025-05-19T19:09:40.506605+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": "uefi", "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": true, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f", "rel": "self"}, {"href": "http://localhost/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/states", "rel": "self"}, {"href": "http://localhost/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/c1427b43-5398-4bbd-8d19-b89c2a61df0f/volume", "rel": "bookmark"}]} GET /v1/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d18f451c-1e74-4f57-b421-226c5a3f1a7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "dcb601c5-0ae2-43da-a46d-2c223f98f9b4", "created_at": "2025-05-19T19:09:40.519939+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": "uefi", "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {} , "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": false, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4", "rel": "self"}, {"href": "http://localhost/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/states", "rel": "self"}, {"href": "http://localhost/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/volume", "rel": "self"}, {"href": "http://localhost/nodes/dcb601c5-0ae2-43da-a46d-2c223f98f9b4/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.072831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-d233384e-1b4b-455c-ae78-20e7703140db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:40.543187+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.076867s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a7bc6f0d-58ad-4283-9d91-b63870ade440 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.206124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'description': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781 234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-01531f57-796b-4480-a59c-4f57eb64bbcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781 234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.071382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b29db07-03b1-4879-acc0-f24490e012d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.566512+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6fb6f65-80b6-47e0-80e8-300a9ed8d389 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.566512+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.070568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0054604d-d3af-4524-befa-0b87615cab3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.038140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fee90c77-d002-40ff-8d94-86f715e7d3ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_bmc_address_as_none [0.041275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': None, 'bmc_v6address': None, 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-5841894f-fd31-4298-b10f-566017aaf7b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "9b523c44-2e1e-4e4e-9d68-021509b7b512"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.141376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/pg.1 WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9b6384f7-6125-4c57-919c-7ae17a74c985 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode [0.065287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/f1a43f81-7276-4fe4-86df-e51e70c49e36/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b0606d6-d82a-46c2-bfa2-ab9f084a0b3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "bios", "secure_boot": null} GET /v1/nodes/fcf206c4-e02a-45ba-a11e-d22723c3f79b/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c193a33-44cd-4df5-988f-4e35d9602a49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": null} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_inspector_compatibility [0.042409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-7f8057dc-32e8-425e-85ef-a58b2695ecf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "794ad5f5-1361-490a-a8e1-d03de76639ed"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_invalid_schema [0.039183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42'}, 'test': 42} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3299c6ac-82fc-4bb1-8171-10c4b172cf37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.044131s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc76e465-c676-4302-b9ae-1baea3a7b114 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-449fc799-f16b-4de1-b9cb-66bc01440c47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.054246s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c92a8bbe-1c45-4211-9016-231c798fce90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "1971-03-09T00:00:00+00:00"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.117186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/7fe282ec-6469-4640-9780-20a0b9ac85ef WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d704f00e-2857-454d-b581-5f15f7c38167 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 7fe282ec-6469-4640-9780-20a0b9ac85ef could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_new_api [0.064110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-965b9232-ef10-4dd9-87b5-280416c0274e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "383b929f-ba25-4c9e-a18d-13e840870a96", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value"}, "links": [{"href": "http://localhost/v1/nodes/383b929f-ba25-4c9e-a18d-13e840870a96", "rel": "self"}, {"href": "http://localhost/nodes/383b929f-ba25-4c9e-a18d-13e840870a96", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off [0.243703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'disable_power_off': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f90ad3d9-3a83-476b-be94-54e66ce8084a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.799533+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": true, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79d62424-bcf7-442a-8faf-1f99c86ea306 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.799533+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode" : null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": true, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.053357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a215622d-acae-4620-ba7c-134d9f440e75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.846022+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-714e090d-58f5-4f7a-9abb-9155709dd406 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:40.846022+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.043212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'interfaces': [{'mac_address': 'meow'}]}, 'test': 42} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-86bc8d34-a73a-4573-959e-cf058d8c40c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.089250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e567a942-c19f-44a9-9705-eb33e1a254de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:40.875324+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.051486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-249ee3e9-02cf-4067-b6c2-e62ca91ce20f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00", "raid_config": {"foo": "bar"}, "target_raid_config": {"foo": "bar"}} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_old_api_version [0.044253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ddc45957-3a9b-41b9-82b1-bd3509ded078 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.054320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/30b0d1fb-9dc7-4b1a-aa47-f47f0e4f8c6b/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82494572-af55-4037-a7c8-8166f0dcd5f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": true} GET /v1/nodes/a5eb3e08-70bd-4a8f-83e0-f7307f7d7ff2/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a0a595e-d88b-49ef-9d4c-19bf5951fa12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": false} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off_old_api_version [0.125975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'disable_power_off': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-66e39e13-c638-4902-ab8d-7c59ee5f84d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.94 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.066117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=e0e83d6a-5786-4729-8209-b7218c706cef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1cbda3f5-6a78-4ffe-bc26-49fa1ba03dec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "e0e83d6a-5786-4729-8209-b7218c706cef", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/e0e83d6a-5786-4729-8209-b7218c706cef", "rel": "self"}, {"href": "http://localhost/nodes/e0e83d6a-5786-4729-8209-b7218c706cef", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=e0e83d6a-5786-4729-8209-b7218c706cef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8770e5bd-cfc6-448a-98c7-3c75e2db6151 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "e0e83d6a-5786-4729-8209-b7218c706cef", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/e0e83d6a-5786-4729-8209-b7218c706cef", "rel": "self"}, {"href": "http://localhost/nodes/e0e83d6a-5786-4729-8209-b7218c706cef", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=e0e83d6a-5786-4729-8209-b7218c706cef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3658e126-b4f5-4f03-8b8e-3c45d619c98c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "e0e83d6a-5786-4729-8209-b7218c706cef", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/e0e83d6a-5786-4729-8209-b7218c706cef", "rel": "self"}, {"href": "http://localho st/nodes/e0e83d6a-5786-4729-8209-b7218c706cef", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.093101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/internal_info', 'value': False, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-111d66df-2b23-441e-a031-8000e3e1d745 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /internal_info. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.085747s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73a412ac-f836-4bcc-84ed-d14a827b5977 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1f30fef-6452-46c2-8170-329340c24e14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.076814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c26e6d8e-6b76-48bf-bd2f-714ae6ba6880 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "b32846dd-020b-4a97-9436-af1e5879e190", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/b32846dd-020b-4a97-9436-af1e5879e190", "rel": "self"}, {"href": "http://localhost/nodes/b32846dd-020b-4a97-9436-af1e5879e190", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "some-value", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.097508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}, {'path': '/properties/bond_param', 'value': '100', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6db98185-0b4f-4cad-a938-a362316d43e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:41.054794+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "802.3ad", "name": "pg.1", "properties": {"bond_param": "100"}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.043628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=76ac324b-83bc-4230-8f63-33a8d4ac68a4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e0130c4-15d3-4dbc-b8c3-dabe7c09a64f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "76ac324b-83bc-4230-8f63-33a8d4ac68a4", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/76ac324b-83bc-4230-8f63-33a8d4ac68a4", "rel": "self"}, {"href": "http://localhost/nodes/76ac324b-83bc-4230-8f63-33a8d4ac68a4", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.070212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48594459-8423-4745-80b6-9fb3eae07470 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.105784+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea9f9940-eccb-43cf-a4c6-ecaaf01be540 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.105784+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", " rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.168387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {'foo': 123}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-16780a56-4d8f-464c-99a9-7c8a28dbe98a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.110522+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52e4331e-4ade-4e5d-8ce2-2f01340df087 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.110522+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.044520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=139014ed-d190-460a-99ac-567b20f79539 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bee85f52-14f0-4524-ac8b-9f64824d015b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "139014ed-d190-460a-99ac-567b20f79539", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/139014ed-d190-460a-99ac-567b20f79539", "rel": "self"}, {"href": "http://localhost/nodes/139014ed-d190-460a-99ac-567b20f79539", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.069487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f80a747e-1304-44f7-a3f5-ad55a56c7053 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.158681+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7229249-6d1b-4833-a759-9e51a593b0d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.158681+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes /1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.056407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=not-a-valid-address,80:00:02:48:fe:80:00:00:00:00:00:00:f4:52:14:03:00:54:06:c2,11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15300706-49e4-418c-b82c-1fb77a6a4687 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "914ce92c-e365-4d3c-8b3a-50d92443dba9", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/914ce92c-e365-4d3c-8b3a-50d92443dba9", "rel": "self"}, {"href": "http://localhost/nodes/914ce92c-e365-4d3c-8b3a-50d92443dba9", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.044441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1f92db3-99b5-49ef-afba-8ab034dc1659 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_addresses [0.035490s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-040483a8-24cb-4eb6-9d81-8c28edaf0898 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_node_uuid [0.029915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8ecaa34c-270f-4824-b7c9-d9dc57a8a204 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.043144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid,provision_state,maintenance,instance_uuid,last_error WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0cdac3d7-e1a6-4326-9e2b-00f50b7e94e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "provision_state": "available", "maintenance": false, "instance_uuid": null, "last_error": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.073601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=f42e00b3-cd03-464a-907d-120ac229e035 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fad202de-1fc5-4281-9ad8-ae0b4c60252b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "f42e00b3-cd03-464a-907d-120ac229e035", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/f42e00b3-cd03-464a-907d-120ac229e035", "rel": "self"}, {"href": "http://localhost/nodes/f42e00b3-cd03-464a-907d-120ac229e035", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "234567890", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_default_conductor_group [0.208716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'mouse', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-5d6101b6-f124-4f25-8c08-dc0efcf6c0a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.305372+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "mouse", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a861d5c6-7471-4ec6-8a3d-5df4faca2af4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.305372+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "mouse", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive" : "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.083728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3261978d-97b9-4e96-9672-e9783d0d6d2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"portgroups": [{"uuid": "598171ae-6e65-4d7c-9566-463620c33252", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/598171ae-6e65-4d7c-9566-463620c33252", "rel": "self"}, {"href": "http://localhost/portgroups/598171ae-6e65-4d7c-9566-463620c33252", "rel": "bookmark"}]}, {"uuid": "866af6ee-4d21-4025-878f-21c1f7129c0f", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/866af6ee-4d21-4025-878f-21c1f7129c0f", "rel": "self"}, {"href": "http://localhost/portgroups/866af6ee-4d21-4025-878f-21c1f7129c0f", "rel": "bookmark"}]}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d153cfab-5748-47df-8462-68785b7170f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"portgroups": [{"uuid": "598171ae-6e65-4d7c-9566-463620c33252", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/598171ae-6e65-4d7c-9566-463620c33252", "rel": "self"}, {"href": "http://localhost/portgroups/598171ae-6e65-4d7c-9566-463620c33252", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=598171ae-6e65-4d7c-9566-463620c33252"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found [0.035989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b47d0af0-131b-4817-b420-2cd251017b3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.035930s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3f7ec7ca-9b5a-46cb-ac04-0cd308bc5b93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.397018+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.050833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a040910d-9a86-43e8-ae44-34f563593a3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.062370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-91842fa1-959e-4339-94ce-67919cb5be8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.434919+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.035963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c6c7712f-ba4f-4bdf-9170-4328259c8d34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.043104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup [0.035462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=1c85205f-b621-4ed6-9fd3-8fcf46892c43 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5d4cd48-8982-495c-aa3d-683c1b1b1481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.172045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'neutron', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-5d448128-06da-4648-8aaa-9ed3cc3e29e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e5d9f1c-461b-4297-9e6a-605810a3dc06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.018321s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.022568s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.020021s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.018065s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.092145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dca1e78a-b6c5-4dbd-bda3-188ab6e8d8d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "d4c016b5-6493-4665-9c25-a11433b57776", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d4c016b5-6493-4665-9c25-a11433b57776", "rel": "self"}, {"href": "http://localhost/ports/d4c016b5-6493-4665-9c25-a11433b57776", "rel": "bookmark"}]}, {"uuid": "838b3432-1da3-4089-be3d-049b58ce9a4d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/838b3432-1da3-4089-be3d-049b58ce9a4d", "rel": "self"}, {"href": "http://localhost/ports/838b3432-1da3-4089-be3d-049b58ce9a4d", "rel": "bookmark"}]}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27464b6f-eff5-4021-81fe-bb973837b6f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "d4c016b5-6493-4665-9c25-a11433b57776", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d4c016b5-6493-4665-9c25-a11433b57776", "rel": "self"}, {"href": "http://localhost/ports/d4c016b5-6493-4665-9c25-a11433b57776", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=d4c016b5-6493-4665-9c25-a11433b57776"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.530999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/mode', 'op': 'add', 'value': '802.3ad'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bd39e11f-7b03-4172-89ce-cb3cb7aa198e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/properties/abc', 'op': 'add', 'value': 123}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c0b262d8-ffff-4f70-bbfc-462d1fd3fd24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.040576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/123 123/ports WITH {} GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for node: 123 123\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.047350s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.024395s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.048147s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b7688ea-287a-4dea-bc59-7faff861bda8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.680034+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.180223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'resource_class': 'class2', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f4262e6d-7e8e-4d36-9a94-d14e90c4567c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.683798+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "class2", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf7460a0-5b3d-4b15-9d3e-75b3d3bc1573 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:41.683798+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "class2", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-0 3f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.053221s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.107478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20042b88-42c0-4a82-9584-5a51aa92ef07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:41.686453+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.046254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ebf2d57c-21b5-4e5a-83dc-53f71fffd439 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup None could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.035161s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.040704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_complex_path [0.027257s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.076443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_slash [0.028807s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.060126s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-839736ec-9aa9-4a3f-9113-462f7c276d10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_tilde [0.024427s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status [0.069567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_status': 'invalid_state', 'agent_status_message': 'woof', 'agent_verify_ca': 'abcdef1'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8d1c10f8-a346-47af-bfe9-cc305a841d9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.180371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-47467746-097a-489d-811a-219b52a0830b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7617f5e5-9c49-44bd-bfaa-2c8667958a50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_in terface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.067302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8760c508-9e13-4d59-846f-b2a87a248bda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "01e6efaf-c68e-4775-bf20-c58d553f4959", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/01e6efaf-c68e-4775-bf20-c58d553f4959", "rel": "self"}, {"href": "http://localhost/nodes/01e6efaf-c68e-4775-bf20-c58d553f4959", "rel": "bookmark"}]}, {"uuid": "1cdbdd01-3d0d-4551-811e-0cb1bb935602", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1cdbdd01-3d0d-4551-811e-0cb1bb935602", "rel": "self"}, {"href": "http://localhost/nodes/1cdbdd01-3d0d-4551-811e-0cb1bb935602", "rel": "bookmark"}]}, {"uuid": "4d7bed58-0838-4288-a77d-62190091aeae", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4d7bed58-0838-4288-a77d-62190091aeae", "rel": "self"}, {"href": "http://localhost/nodes/4d7bed58-0838-4288-a77d-62190091aeae", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_incomplete_escape [0.076527s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.074378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url2'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-391a7b77-b66e-4bb0-a715-db6966b6a5d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_invalid_escape_sequence [0.042037s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.108546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90baee60-34ea-4f28-8e10-dad5761c3bb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "52cd34e2-29ef-46c0-92e7-dcf49236d6c3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/52cd34e2-29ef-46c0-92e7-dcf49236d6c3", "rel": "self"}, {"href": "http://localhost/nodes/52cd34e2-29ef-46c0-92e7-dcf49236d6c3", "rel": "bookmark"}]}, {"uuid": "ece73915-e99b-4fef-9773-40789b7eb729", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ece73915-e99b-4fef-9773-40789b7eb729", "rel": "self"}, {"href": "http://localhost/nodes/ece73915-e99b-4fef-9773-40789b7eb729", "rel": "bookmark"}]}, {"uuid": "993cec0c-1f3b-4707-acdc-fde6abf43eef", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/993cec0c-1f3b-4707-acdc-fde6abf43eef", "rel": "self"}, {"href": "http://localhost/nodes/993cec0c-1f3b-4707-acdc-fde6abf43eef", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_bios_boot_mode [0.121423s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'capabilities': 'boot_mode:bios'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-96c26bfd-361b-4048-9e7c-e6da526746bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_file_url [0.067636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'file:///path/to/the/wizzard'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1b9d717a-d8e0-4ddb-be00-a4f062fd2628 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_slash [0.038287s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_tilde [0.030686s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.051955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/409b8c67-959a-46c6-a790-cb9551601387 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9f80866d-32ac-4990-8034-f623be928e28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 409b8c67-959a-46c6-a790-cb9551601387 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.035557s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.087585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-35f23186-2122-4691-8177-ed55e7af6613 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e38c2207-d3d9-42b8-bade-50e9abb517e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=driver_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3df1f8fa-d480-4afc-af9e-c39531482b3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f22a133a-2255-411f-88df-ba2caf0ff1bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=instance_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fe82f07f-6993-49be-991d-decdd4530425 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value instance_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=driver_internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5d0d0012-f502-44e9-8834-75af038b165f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=clean_step WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-351a1d19-d9b2-4422-82f6-42eda29afe50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value clean_step is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=traits WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9fb0e43c-5f51-495f-96df-80c95999f4f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.021380s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_uefi_boot_mode [0.112550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'capabilities': 'boot_mode:uefi'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-24a2e093-935f-4983-ac8e-408a874c014e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.034510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-72bbc724-b361-43ee-8495-b9f470ce1541 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.021217s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.063407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'x'} GOT Response: 202 Accepted Openstack-Request-Id: req-12d99d3a-ca9f-42ad-83ab-b3f5042fdcbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.017599s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.019645s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_invalid_boot_mode [0.053086s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.024144s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.066201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_status': 'start', 'agent_status_message': 'woof', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted Openstack-Request-Id: req-fbefee5d-5e20-4b53-9e45-695adc245b4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive [0.072384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff24fcb5-5fd3-4a65-95bd-686c6c6228a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "a6e0d67b-7955-44ff-91a0-e77dac63206d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a6e0d67b-7955-44ff-91a0-e77dac63206d", "rel": "self"}, {"href": "http://localhost/nodes/a6e0d67b-7955-44ff-91a0-e77dac63206d", "rel": "bookmark"}]}, {"uuid": "8f3822e4-4cf2-4937-ae47-9859e42c4b54", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8f3822e4-4cf2-4937-ae47-9859e42c4b54", "rel": "self"}, {"href": "http://localhost/nodes/8f3822e4-4cf2-4937-ae47-9859e42c4b54", "rel": "bookmark"}]}, {"uuid": "9df64483-9b1b-48d0-8060-be7ba4202e5f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9df64483-9b1b-48d0-8060-be7ba4202e5f", "rel": "self"}, {"href": "http://localhost/nodes/9df64483-9b1b-48d0-8060-be7ba4202e5f", "rel": "bookmark"}]}]} GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47bb70cd-2a56-4b68-a996-231295a2923e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "a6e0d67b-7955-44ff-91a0-e77dac63206d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a6e0d67b-7955-44ff-91a0-e77dac63206d", "rel": "self"}, {"href": "http://localhost/nodes/a6e0d67b-7955-44ff-91a0-e77dac63206d", "rel": "bookmark"}]}, {"uuid": "8f3822e4-4cf2-4937-ae47-9859e42c4b54", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8f3822e4-4cf2-4937-ae47-9859e42c4b54", "rel": "self"}, {"href": "http://localhost/nodes/8f3822e4-4cf2-4937-ae47-9859e42c4b54", "rel": "bookmark"}]}, {"uuid": "9df64483-9b1b-48d0-8060-be7ba4202e5f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9df64483-9b1b-48d0-8060-be7ba4202e5f", "rel": "self"}, {"href": "http://localhost/nodes/9df64483-9b1b-48d0-8060-be7ba4202e5f", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.022779s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.026254s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.026349s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token [0.074530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'http://url', 'agent_token': 'abcdef1'} GOT Response: 202 Accepted Openstack-Request-Id: req-ba47bd6f-e96e-449b-a111-c839f2f0062e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.092676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9259df1-40b3-4560-b2ce-6fb0564108fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "73bc5517-8d6b-4701-bee0-1fdc20c38fdb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/73bc5517-8d6b-4701-bee0-1fdc20c38fdb", "rel": "self"}, {"href": "http://localhost/nodes/73bc5517-8d6b-4701-bee0-1fdc20c38fdb", "rel": "bookmark"}]}, {"uuid": "4223dfa2-a280-4012-8c4f-c30fc37ade17", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4223dfa2-a280-4012-8c4f-c30fc37ade17", "rel": "self"}, {"href": "http://localhost/nodes/4223dfa2-a280-4012-8c4f-c30fc37ade17", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=2&marker=4223dfa2-a280-4012-8c4f-c30fc37ade17"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.023345s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.138520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'bios_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3fc2b4cf-32d9-428e-af2e-fd354bd39be8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.043424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d443dc0-25bc-4d65-9a62-b2f90dd92eb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.042691s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.068684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted Openstack-Request-Id: req-eb89fcab-e31c-456a-8727-c400317b41e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.034138s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.016917s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.062826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_version': '1.4.1', 'agent_token': 'meow'} GOT Response: 202 Accepted Openstack-Request-Id: req-bbcc5dcd-9fac-4bf8-858b-26963a74ad2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.075843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-17f4565d-3651-4059-8271-e5dd2fe2f6bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.027865s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.119105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 0} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0efc6ff0-6368-402c-8b5d-4e9924559987 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 0 is not of type 'string', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.020423s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_special_fields [0.020214s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.062604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-d7d1e835-e84f-461f-bb8a-0895ce587c92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.036838s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.083474s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc79f7d1-40e2-44a1-908c-c3ca18d98c62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.019587s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.016848s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_for_anaconda [0.077547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': '', 'agent_token': 'x'} GOT Response: 202 Accepted Openstack-Request-Id: req-b315cc96-1426-48bb-b408-2410b392e61c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.127103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5283d8a6-4c0c-4409-9f71-81f68373fa32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.048210s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.097588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7da91255-14a0-474e-8c12-96e958b97def X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.064504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json WITH {'callback_url': 'https://url', 'agent_token': 'maybe some magic'} GOT Response: 202 Accepted Openstack-Request-Id: req-f549a409-14a9-4c4f-8d65-31802fa27e90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.024726s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.019127s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.017198s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.062195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98e36691-50c9-4344-9cdb-4df39f5a25d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.67 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_invalid_uuid_or_name [0.073203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1234~1234~1234 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a68afc47-6176-4138-a8d1-5165bb6dddde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received 1234~1234~1234.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.017453s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.131113s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-45788281-92e9-40c9-93a5-52c3edde2675 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.025892s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.065897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_version': '1.4.1'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fbfac8a5-cde1-4376-b474-f91b91d83442 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.027861s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.022553s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.103968s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d492f361-0fb3-4652-9230-ecd9fb7960d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "e951d889-17c6-4fbd-8220-bf7dedaec757", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e951d889-17c6-4fbd-8220-bf7dedaec757", "rel": "self"}, {"href": "http://localhost/volume/connectors/e951d889-17c6-4fbd-8220-bf7dedaec757", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8a457567-f4b4-48fb-9e3b-9ea64c2ba514", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8a457567-f4b4-48fb-9e3b-9ea64c2ba514", "rel": "self"}, {"href": "http://localhost/volume/connectors/8a457567-f4b4-48fb-9e3b-9ea64c2ba514", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33d6478f-73a1-4fe8-a9b9-23f3cd6e2209 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "e951d889-17c6-4fbd-8220-bf7dedaec757", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e951d889-17c6-4fbd-8220-bf7dedaec757", "rel": "self"}, {"href": "http://localhost/volume/connectors/e951d889-17c6-4fbd-8220-bf7dedaec757", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=1&marker=e951d889-17c6-4fbd-8220-bf7dedaec757"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.023824s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.061313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd', 'agent_status': 'wow', 'agent_status_message': 'much status'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-58d37f8d-6766-4cae-9193-4b00ca7ba100 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.71 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.018960s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.039691s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-50a73d90-0704-4d16-a1a4-81aceccb2a0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.129378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dbb6c5b0-350c-414e-be27-737f1cb6a3b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.034325s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.020435s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.062837s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/ed729379-c39b-489a-928e-57d0871aeb7b WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0e85ee66-46d5-4414-9ab0-f629774af813 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.052588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.026351s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.024710s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.042918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2710ee2a-7d1c-4629-a7bb-b87a446eef78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version [0.049916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a78e9c2b-48f7-4a52-afb8-03369942af25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.047649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ae196a9f-7620-4388-ac71-03f56c60c1eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_microversion_headers [0.063935s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.085454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c924a084-6d3f-4809-9b90-8835c507c2da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.061016+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version [0.070100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ef2967c-3083-4755-8543-4e248a2d2b85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.069170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d570465-b7c8-4e6b-9ac4-7f3cc59621c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "aee348eb-7c34-43a4-9b51-97d4e9a234a7", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/aee348eb-7c34-43a4-9b51-97d4e9a234a7", "rel": "self"}, {"href": "http://localhost/volume/targets/aee348eb-7c34-43a4-9b51-97d4e9a234a7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a6c375b4-5d31-4831-a635-41572b51e6da", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a6c375b4-5d31-4831-a635-41572b51e6da", "rel": "self"}, {"href": "http://localhost/volume/targets/a6c375b4-5d31-4831-a635-41572b51e6da", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52d51b6b-fc09-4eb9-af96-92828ee25051 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "aee348eb-7c34-43a4-9b51-97d4e9a234a7", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/aee348eb-7c34-43a4-9b51-97d4e9a234a7", "rel": "self"}, {"href": "http://localhost/volume/targets/aee348eb-7c34-43a4-9b51-97d4e9a234a7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=1&marker=aee348eb-7c34-43a4-9b51-97d4e9a234a7"} {0} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.081740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5d96039-16a8-4c85-8465-cbcbc58c4af8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.232945s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.019791s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.053944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0d153c16-3e1d-458f-ae62-89f928f1030e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.028706s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name [0.067683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-eef73446-bd93-423d-89e6-6ffcb1dad5a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.035876s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name_non_existent [0.025979s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-54b89e00-718d-45d4-89ca-970fab804ea7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook blah could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.066469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_uuid [0.035150s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/b59268b6-1645-47eb-80ba-02257f450f6f GOT Response: 204 No Content Openstack-Request-Id: req-c786dbd6-df18-494f-a864-eb90504d8e5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.057528s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_invalid_api_version [0.034580s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/6056e28b-32d0-478c-bafc-3d44c5774976 GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_old_api_version [0.024558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/CUSTOM_DT1 GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.045369s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.505676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'lessee': 'project', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3fa832d4-4513-4f47-bc29-aa42e36ea699 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.349389+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "project", "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86b24961-f6de-45e6-8f6e-0816f7ae5399 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.349389+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode" : null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "project", "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.029962s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.030702s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version [0.078223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'lessee': 'project', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-14d063c1-0ff8-41d1-978e-8c0c17e00e7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_multi [0.097654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/03be455e-9282-43c5-970d-27a0733ca7b5 WITH [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'order': 2}, 'op': 'add'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'order': 2}, 'op': 'add'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'order': 2}, 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4aea8f95-7c9e-46b2-a8ab-4afeeacb613a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "03be455e-9282-43c5-970d-27a0733ca7b5", "created_at": "2025-05-19T19:09:43.375318+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/03be455e-9282-43c5-970d-27a0733ca7b5", "rel": "self"}, {"href": "http://localhost/runbooks/03be455e-9282-43c5-970d-27a0733ca7b5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_root_non_existent [0.029206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ffbbfb9e-c18b-4eff-b922-bcca18f06a87 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-93720bf0-7359-48fe-a31f-826a8d327776 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.056399s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard [0.217489s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'shard': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-73559878-4334-4f70-a45c-a2c0287575a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.442531+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c867b107-a179-4602-9ba7-818f55ef68a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.442531+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "dep loy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.059918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a26c8de-73d4-4a16-971b-6516d494a8ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.037677s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_too_high_index_step_fail [0.040026s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/c6203744-4311-461e-b4e6-dba9153c0269 WITH [{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a5dc77b4-40ae-4823-9c25-02fde42714d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_foo [0.029607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7ba1658c-48b2-4af9-95b6-e48a3c5b4029 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7089dcfc-1e2a-4aa9-8a24-cd5c1b3945a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.033737s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.067754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-65743e0b-7538-455d-83bb-0fd38ef2c972 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_multi [0.057325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f9a8d63b-73a8-4aa2-8681-41e4a67ecc9b WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0336df97-459c-4abf-b785-264f58607d67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f9a8d63b-73a8-4aa2-8681-41e4a67ecc9b", "created_at": "2025-05-19T19:09:43.583721+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f9a8d63b-73a8-4aa2-8681-41e4a67ecc9b", "rel": "self"}, {"href": "http://localhost/runbooks/f9a8d63b-73a8-4aa2-8681-41e4a67ecc9b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.055257s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.132030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'shard': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6f3889b1-7783-4e03-8392-7321a11bfc46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.030586s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_name [0.042695s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/bbba5e4b-dd7d-44bf-a2b6-c28b82c63f0f WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e5620667-0bdb-43c7-8775-c034d4655671 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.090301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-6d98c5b5-4097-463c-8a52-cc859c00ce03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.642053+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c82e3879-86da-49d0-828b-c425bd3c2086 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.642053+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mo de": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.029351s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_property_fail [0.029735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/8714a7d7-8ef3-46bc-a249-f458a0d504a0 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ab8abe6b-5768-4127-8df9-65b3757110a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.037681s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.090546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 204 No Content Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 Openstack-Request-Id: req-a8e4e16e-6c13-41ec-82e9-a71fe8a3ccba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.034263s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_fail [0.070429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/c7776c2d-9eb0-4387-b7c7-3ae2b2d8039b WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbff9da0-a76d-4029-a252-fe64a4af31b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove a non-existent object '1'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.107631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2cd52944-b88c-40dc-925b-3e73ff1f453c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.054215s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_property_fail [0.067074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/2845360f-278c-4866-9742-1433c6d985a8 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-42e77387-0e41-496f-a4d3-11a02a90a965 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.089924s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2dd334ae-33f5-4dd0-8667-d8108a143c61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.043899s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.048610s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.128541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-9948ceb0-d660-4676-b768-a42362353d1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.875481+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.096294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ccad6a00-4e63-4a74-a9d7-da3ba1ebe5bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_only_step_fail [0.101773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f000527d-7303-43a7-bb86-387037724f86 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-431ebc1d-f232-4ef7-a4ce-f7d7e2286261 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.036382s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.024724s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_steps [0.058522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/37965b87-e70f-4003-8186-56091050e2f6 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e5876ec8-6a8e-479f-9b2e-f9b820d84ff3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.027716s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.017869s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.100271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-97dae8b6-e25f-467e-977d-bbbc5f143f1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.980503+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be207f30-9e86-4b2e-a2cd-0f789df79e30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:43.980503+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.087707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1d341476-ae5c-4586-9b75-eea9302481b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_uuid [0.039314s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/02d7d0bf-e008-45ab-8bee-b84262b14a6b WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-40c5d854-d935-40bc-9e80-97f4a8ea72ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.019381s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.033775s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_duplicate_step [0.043472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6594d36a-6182-4d12-b0b4-6c764d4d07bb WITH [{'path': '/steps', 'op': 'replace', 'value': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'order': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'order': 1}]}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f70c6c95-ea26-4edd-b302-483141f2a253 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.070471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5fe9703e-6046-4313-bfb3-02c5eb970bfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 'driver' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.068948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 WITH {} GOT Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.032083s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_empty_step_list_fail [0.042229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/736cf67a-e29a-4ddb-adb4-7d375e4e6c4c WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-feb5193e-54c0-4182-a017-878aab4ec8f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.053539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-0b8998cb-9c1f-4f1f-9299-c654f37e17a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_none [0.044746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/2b387603-8aee-43e0-84a6-40e991bfbbae WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-112b711a-9a09-4530-bdb1-aa0a75d33042 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.033008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_too_long [0.039945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9e2f5b3e-5fe7-4fa6-be7f-54929c02ebaf WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67c43dbc-290a-423d-9d40-f29dc4a45d89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.120571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'cowsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-91712023-6cc6-4f6a-8ac9-9a163b597cc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:44.154251+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "cowsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e70e167d-5caa-481c-bc64-f6a5299cf42c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:44.154251+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": n ull, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "cowsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.043375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f5f763a8-a81e-468d-8160-2ba841fb006a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_step_interface_fail [0.042797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/4ff43104-0338-4037-b532-3c9700e5ed64 WITH [{'path': '/steps/0', 'op': 'replace', 'value': {'interface': 'foo', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9b654980-80ab-4f68-afb5-a93e1a1e234a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.038487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-24a6f8e3-693d-4911-99a1-71adb59bc458 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.082476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'bob', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4d188ffc-c79b-42bb-b0f4-d273a15ebda9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_multi [0.061004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b54aa5f2-d2e2-414f-ba9c-da9eb1c429e4 WITH [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'order': 3}, 'op': 'replace'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'order': 3}, 'op': 'replace'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'order': 3}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb831252-8e7e-4fd6-8418-03cdd6c9fd37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b54aa5f2-d2e2-414f-ba9c-da9eb1c429e4", "created_at": "2025-05-19T19:09:44.269345+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b54aa5f2-d2e2-414f-ba9c-da9eb1c429e4", "rel": "self"}, {"href": "http://localhost/runbooks/b54aa5f2-d2e2-414f-ba9c-da9eb1c429e4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 3}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.054753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3753ab23-f165-4977-9377-36f3cab91b78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "b1e25806-fa03-4f40-a420-1c8744bbec30", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/b1e25806-fa03-4f40-a420-1c8744bbec30", "rel": "self"}, {"href": "http://localhost/volume/connectors/b1e25806-fa03-4f40-a420-1c8744bbec30", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9025db31-a0ed-412a-a86b-6b245ea6949b", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9025db31-a0ed-412a-a86b-6b245ea6949b", "rel": "self"}, {"href": "http://localhost/volume/connectors/9025db31-a0ed-412a-a86b-6b245ea6949b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e756400e-e5af-48a5-a9fe-b2711230556d", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e756400e-e5af-48a5-a9fe-b2711230556d", "rel": "self"}, {"href": "http://localhost/volume/connectors/e756400e-e5af-48a5-a9fe-b2711230556d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=e756400e-e5af-48a5-a9fe-b2711230556d"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_name_already_exist [0.051284s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/88a6e701-9b01-42b4-a570-02a684607726 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-69dd205b-dc57-4285-825f-4f5a1dedec93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A runbook with UUID 88a6e701-9b01-42b4-a570-02a684607726 already exists.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope [0.110533s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e4065562-dacb-4c7d-a801-1116296fe3d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:44.362511+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "ravensay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b922bc8-20d4-4e40-a71f-cbbd050b209c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:44.362511+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step" : {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "ravensay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_non_existent_step_fail [0.052323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/3f0eaa7e-e26d-42a2-b292-1298fa93a109 WITH [{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c1b798a0-abc1-4df1-943b-1eb43660556d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: can't replace outside of list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_step_invalid_interface [0.054031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7094ab41-dc3b-4a3d-bac6-828255fc9c45 WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-45e28f24-3f18-4c90-ae79-286d14f6ef26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.151193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0863cc2-21f7-4c5f-a3b2-a048128d4beb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "7bb6d074-88c5-4137-b9cb-84d7eaf0b90e", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/7bb6d074-88c5-4137-b9cb-84d7eaf0b90e", "rel": "self"}, {"href": "http://localhost/volume/connectors/7bb6d074-88c5-4137-b9cb-84d7eaf0b90e", "rel": "bookmark"}]}, {"uuid": "74f0b791-dcd7-4b26-ac82-19a1eb62507b", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/74f0b791-dcd7-4b26-ac82-19a1eb62507b", "rel": "self"}, {"href": "http://localhost/volume/connectors/74f0b791-dcd7-4b26-ac82-19a1eb62507b", "rel": "bookmark"}]}, {"uuid": "e74667f1-b2cc-49af-9d9c-b5d43417c228", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/e74667f1-b2cc-49af-9d9c-b5d43417c228", "rel": "self"}, {"href": "http://localhost/volume/connectors/e74667f1-b2cc-49af-9d9c-b5d43417c228", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=e74667f1-b2cc-49af-9d9c-b5d43417c228"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope [0.107480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'ae4b5856-4930-4706-a6b2-bdc39cf3d9be', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': True, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/ae4b5856-4930-4706-a6b2-bdc39cf3d9be Openstack-Request-Id: req-f33fdaad-99ea-406b-b9ce-d3566b436004 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ae4b5856-4930-4706-a6b2-bdc39cf3d9be", "created_at": "2025-05-19T19:09:44.518886+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ae4b5856-4930-4706-a6b2-bdc39cf3d9be", "rel": "self"}, {"href": "http://localhost/runbooks/ae4b5856-4930-4706-a6b2-bdc39cf3d9be", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/ae4b5856-4930-4706-a6b2-bdc39cf3d9be WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}, {'path': '/public', 'value': False, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-852bd857-3a73-41aa-9832-c9f682b0e858 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ae4b5856-4930-4706-a6b2-bdc39cf3d9be", "created_at": "2025-05-19T19:09:44.518886+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ae4b5856-4930-4706-a6b2-bdc39cf3d9be", "rel": "self"}, {"href": "http://localhost/runbooks/ae4b5856-4930-4706-a6b2-bdc39cf3d9be", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.117107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d41c45e-ec9c-4fef-85a0-76f66b9517d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "ec65cdda-d223-4600-ba3b-eb27c32a08fe", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ec65cdda-d223-4600-ba3b-eb27c32a08fe", "rel": "self"}, {"href": "http://localhost/volume/connectors/ec65cdda-d223-4600-ba3b-eb27c32a08fe", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "dfabd88c-c414-4900-a413-1776ad5fe3da", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/dfabd88c-c414-4900-a413-1776ad5fe3da", "rel": "self"}, {"href": "http://localhost/volume/connectors/dfabd88c-c414-4900-a413-1776ad5fe3da", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8fca121f-78e6-400c-8d5a-653bc2b5ae7a", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8fca121f-78e6-400c-8d5a-653bc2b5ae7a", "rel": "self"}, {"href": "http://localhost/volume/connectors/8fca121f-78e6-400c-8d5a-653bc2b5ae7a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=8fca121f-78e6-400c-8d5a-653bc2b5ae7a"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope [0.250113s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'catsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-4e80f621-777b-434e-8b97-ef4076a9be9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:44.571743+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "catsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e0d5b13-a9e1-4ad4-bb22-85d31ebb6730 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:44.571743+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": n ull, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "catsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.590681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/bad_trait WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-16dc442e-747e-476f-b961-cc2e69dd548d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'bad_trait' is not valid under any of the given schemas. Possible root cause: 'bad_trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope_fails [0.150380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '38c682ad-fa28-4016-81e9-7c03b5892e06', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': True, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/38c682ad-fa28-4016-81e9-7c03b5892e06 Openstack-Request-Id: req-cf9a2c20-03c6-473f-b254-a324af50ac19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "38c682ad-fa28-4016-81e9-7c03b5892e06", "created_at": "2025-05-19T19:09:44.681482+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/38c682ad-fa28-4016-81e9-7c03b5892e06", "rel": "self"}, {"href": "http://localhost/runbooks/38c682ad-fa28-4016-81e9-7c03b5892e06", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/38c682ad-fa28-4016-81e9-7c03b5892e06 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}, {'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4f07abe0-a846-42b9-a8c7-1e6c2e084b96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}, {'path': '/public', 'value': True, 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.080341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'protected': True} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e77495b7-bb6f-4916-9b11-b39df2afdad9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('protected' was unexpected)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.132800s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6b27a26-acc4-4400-a8fa-e16f6da04d79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "9dae930e-8e0f-499b-a040-6211fe32a337", "created_at": "2025-05-19T19:09:44.676147+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9dae930e-8e0f-499b-a040-6211fe32a337", "rel": "self"}, {"href": "http://localhost/volume/connectors/9dae930e-8e0f-499b-a040-6211fe32a337", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9ff34dd6-9e09-46c1-9980-126ce7757542", "created_at": "2025-05-19T19:09:44.676864+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9ff34dd6-9e09-46c1-9980-126ce7757542", "rel": "self"}, {"href": "http://localhost/volume/connectors/9ff34dd6-9e09-46c1-9980-126ce7757542", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c6e5d36c-dabb-4332-82da-ac2a6f8cac78", "created_at": "2025-05-19T19:09:44.677540+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c6e5d36c-dabb-4332-82da-ac2a6f8cac78", "rel": "self"}, {"href": "http://localhost/volume/connectors/c6e5d36c-dabb-4332-82da-ac2a6f8cac78", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=c6e5d36c-dabb-4332-82da-ac2a6f8cac78"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.093447s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-adab1d48-a884-4bbf-a879-119a6fc17f54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.069396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9708ec1b-221a-461c-a71f-ee4e8103717d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:44.793280+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.073968s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-ffc8c6b1-dfdb-4d00-8556-1f58a762f683 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_new_owner_for_project_owned_runbook [0.145413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '0c4a3c45-05ef-41df-b9ce-7030aa7395b5', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/0c4a3c45-05ef-41df-b9ce-7030aa7395b5 Openstack-Request-Id: req-2a27285d-acbf-4818-b994-809588c2eb76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0c4a3c45-05ef-41df-b9ce-7030aa7395b5", "created_at": "2025-05-19T19:09:44.810208+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0c4a3c45-05ef-41df-b9ce-7030aa7395b5", "rel": "self"}, {"href": "http://localhost/runbooks/0c4a3c45-05ef-41df-b9ce-7030aa7395b5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/0c4a3c45-05ef-41df-b9ce-7030aa7395b5 WITH [{'path': '/owner', 'value': 'projectY', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7eeab71-e0f3-4835-a35a-e2bb0d266e86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0c4a3c45-05ef-41df-b9ce-7030aa7395b5", "created_at": "2025-05-19T19:09:44.810208+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectY", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0c4a3c45-05ef-41df-b9ce-7030aa7395b5", "rel": "self"}, {"href": "http://localhost/runbooks/0c4a3c45-05ef-41df-b9ce-7030aa7395b5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.064839s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-40d7256b-8804-45cc-ab01-661d09e536b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.035973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8c07dc57-8719-4ab8-9eb1-cd57c06b786d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.048388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-9a6b9fe8-de8b-4ac6-832c-0170ff680989 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.068832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0058a688-ab96-4d5a-ba78-93ef951feb31 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.049804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content Openstack-Request-Id: req-f3c8f8a8-697c-4dbc-853d-3b22d57bbe33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope [0.142090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '164b22e6-4bbf-4577-b08c-379860a77aa8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/164b22e6-4bbf-4577-b08c-379860a77aa8 Openstack-Request-Id: req-b89b5fde-cbee-411d-89b3-da8fc7c1d569 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "164b22e6-4bbf-4577-b08c-379860a77aa8", "created_at": "2025-05-19T19:09:44.949660+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/164b22e6-4bbf-4577-b08c-379860a77aa8", "rel": "self"}, {"href": "http://localhost/runbooks/164b22e6-4bbf-4577-b08c-379860a77aa8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/164b22e6-4bbf-4577-b08c-379860a77aa8 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80619abc-d9b6-4cb9-b2cd-7809d38d2a97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "164b22e6-4bbf-4577-b08c-379860a77aa8", "created_at": "2025-05-19T19:09:44.949660+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/164b22e6-4bbf-4577-b08c-379860a77aa8", "rel": "self"}, {"href": "http://localhost/runbooks/164b22e6-4bbf-4577-b08c-379860a77aa8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.076679s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True&node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfaefdc2-f0d3-40ff-8a09-02a13a42f4d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:44.995232+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.036990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-cf0f5ef9-3555-4b74-af41-10f09e4c7bbb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.326832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'maintenance', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ccc3b04b-063e-4613-860a-21d51ae9c0ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33adb813-ceed-4d5c-9fa6-618e7eacf136 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'states', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-81beafdf-3922-494d-9bbc-7577a7a09ad6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'vendor_passthru', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8a5d1739-3fc9-4b5b-9b94-b722512e6a32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, state s, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'detail', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed1adae0-1e31-48cb-a636-5fab54154062 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'validate', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4c05e37d-d687-46ca-bf7d-df1498696b46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.051610s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-651e1a12-f83f-4f3f-9e14-43a6ad2f647d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.080175s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc2ae953-7f58-4da9-95c4-04be5b2b0262 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope_fails_if_public [0.121528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '4d2e2e7e-4a74-4e98-9549-cf48a92b582e', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': True, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/4d2e2e7e-4a74-4e98-9549-cf48a92b582e Openstack-Request-Id: req-af535dcc-a72c-4884-ad53-0c6165cb5f78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4d2e2e7e-4a74-4e98-9549-cf48a92b582e", "created_at": "2025-05-19T19:09:45.105633+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4d2e2e7e-4a74-4e98-9549-cf48a92b582e", "rel": "self"}, {"href": "http://localhost/runbooks/4d2e2e7e-4a74-4e98-9549-cf48a92b582e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/4d2e2e7e-4a74-4e98-9549-cf48a92b582e WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f604f297-a6bc-4cc4-b820-7b8114bb3edb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.075375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.138914s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-8416a827-8017-4e85-b679-9b267a1ac9c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:45.155582+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": "foo", "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a2b7742-266b-4226-91fd-e003cb2230f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:45.155582+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode" : null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": "foo", "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_project_owned_runbook_public [0.066303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82 Openstack-Request-Id: req-4497d45f-55a2-4c0f-b288-9f9be219a658 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82", "created_at": "2025-05-19T19:09:45.172943+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82", "rel": "self"}, {"href": "http://localhost/runbooks/74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-25573218-2afe-4e3d-934b-3efe6a10ddd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82", "created_at": "2025-05-19T19:09:45.172943+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82", "rel": "self"}, {"href": "http://localhost/runbooks/74a40d26-67e6-4e4a-bd33-ea3ef4d0bf82", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.127165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a53136e5-466a-4c89-9d77-a534de90e88a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.061205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7f8420b6-8c37-4e75-9259-5bcfb99d1558 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_public_system_scope [0.070103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/18c6a538-9cbf-4c4d-8a72-22633eafce3d WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ffc2bbcd-c85e-4a20-8cd2-087f3b44e4c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "18c6a538-9cbf-4c4d-8a72-22633eafce3d", "created_at": "2025-05-19T19:09:45.231443+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/18c6a538-9cbf-4c4d-8a72-22633eafce3d", "rel": "self"}, {"href": "http://localhost/runbooks/18c6a538-9cbf-4c4d-8a72-22633eafce3d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.064882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2a5ae28e-6aaf-414f-8849-43ed5a6dec79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.037642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05c26118-3721-40b9-b8fd-868dfc843d2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version [0.131446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1e9b2b6d-2356-4f0c-8bef-8c8b8fad699e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_unset_public_system_scope [0.071454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE2', 'uuid': '7b9508c1-1720-45f9-9239-1fba23718d05', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': True, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/7b9508c1-1720-45f9-9239-1fba23718d05 Openstack-Request-Id: req-dee0fd30-fb21-4257-aa3c-f7920533c6f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7b9508c1-1720-45f9-9239-1fba23718d05", "created_at": "2025-05-19T19:09:45.317911+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7b9508c1-1720-45f9-9239-1fba23718d05", "rel": "self"}, {"href": "http://localhost/runbooks/7b9508c1-1720-45f9-9239-1fba23718d05", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/7b9508c1-1720-45f9-9239-1fba23718d05 WITH [{'path': '/public', 'value': False, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e01c786b-74c5-4d33-8283-d77e0a6a2ab4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7b9508c1-1720-45f9-9239-1fba23718d05", "created_at": "2025-05-19T19:09:45.317911+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7b9508c1-1720-45f9-9239-1fba23718d05", "rel": "self"}, {"href": "http://localhost/runbooks/7b9508c1-1720-45f9-9239-1fba23718d05", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.063754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-047fb3a5-3b75-40e4-b04d-97a01277ebc8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"traits": ["CUSTOM_1", "CUSTOM_2"]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.083359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-940d9ae0-d77a-49c8-bb4f-4849959b4b60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "57867d4d-2636-43be-97af-dd2417885958", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/57867d4d-2636-43be-97af-dd2417885958", "rel": "self"}, {"href": "http://localhost/volume/connectors/57867d4d-2636-43be-97af-dd2417885958", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d775d17a-2905-42e9-9d52-ec1367032664", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d775d17a-2905-42e9-9d52-ec1367032664", "rel": "self"}, {"href": "http://localhost/volume/connectors/d775d17a-2905-42e9-9d52-ec1367032664", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "eb4886d3-3dc3-4bd4-9c0e-b1eb3c1c6669", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/eb4886d3-3dc3-4bd4-9c0e-b1eb3c1c6669", "rel": "self"}, {"href": "http://localhost/volume/connectors/eb4886d3-3dc3-4bd4-9c0e-b1eb3c1c6669", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id [0.057366s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6fc85589-6dcd-4c57-b2eb-9cfaae27b6a1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c02c16ff-2c01-4abb-ad6c-a28ac33bc0a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6fc85589-6dcd-4c57-b2eb-9cfaae27b6a1", "created_at": "2025-05-19T19:09:45.372637+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6fc85589-6dcd-4c57-b2eb-9cfaae27b6a1", "rel": "self"}, {"href": "http://localhost/runbooks/6fc85589-6dcd-4c57-b2eb-9cfaae27b6a1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.082132s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-30668a25-3e4d-40ec-9824-1f0304332a68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id_invalid_api_version [0.046892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/28672fd3-0f43-433a-a8c7-843e4d1a65d3 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.075802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6e57834-2227-499e-9149-030c12862b21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "51a04cb0-f602-4e3e-98e2-df728a1e134d", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/51a04cb0-f602-4e3e-98e2-df728a1e134d", "rel": "self"}, {"href": "http://localhost/volume/connectors/51a04cb0-f602-4e3e-98e2-df728a1e134d", "rel": "bookmark"}]}, {"uuid": "b7dd6bc2-8f77-48d1-a7d0-db973edb2dcb", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/b7dd6bc2-8f77-48d1-a7d0-db973edb2dcb", "rel": "self"}, {"href": "http://localhost/volume/connectors/b7dd6bc2-8f77-48d1-a7d0-db973edb2dcb", "rel": "bookmark"}]}, {"uuid": "002d40b3-30ba-4612-9abc-517846037bdb", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/002d40b3-30ba-4612-9abc-517846037bdb", "rel": "self"}, {"href": "http://localhost/volume/connectors/002d40b3-30ba-4612-9abc-517846037bdb", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.056098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-db0633ae-b7df-43f4-b21b-e01318fb0b2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.059988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'trait': 'CUSTOM_3'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a8ebcf71-51ab-485b-ad91-5857581fd237 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: Additional properties are not allowed ('trait' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.234995s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-82ba0b16-f851-4e09-8452-f9a6057f7572 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:45.505068+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "foo", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7533d6f9-4db6-4249-a19a-59f84d500d41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:45.505068+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "foo", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "*** ***", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.095352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=connector_id&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f8f2a1c0-1271-4aba-ab5b-0b4bef364c6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"connector_id": "test-connector_id-0", "links": [{"href": "http://localhost/v1/volume/connectors/b52c3009-6b96-47b7-a250-e57dca371840", "rel": "self"}, {"href": "http://localhost/volume/connectors/b52c3009-6b96-47b7-a250-e57dca371840", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/596b9d7a-d788-48fe-a2e7-46ece6819524", "rel": "self"}, {"href": "http://localhost/volume/connectors/596b9d7a-d788-48fe-a2e7-46ece6819524", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=596b9d7a-d788-48fe-a2e7-46ece6819524"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.053327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {'traits': ['CUSTOM_3']} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-459d5eb9-27a0-4030-b214-6c161c1d4795 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.076578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.110763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-de0a1e51-6684-4778-bb35-deee70b82449 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.057693s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-0ae4dbb8-e59b-4a4b-b3b5-8af36016e1a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.076703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-db07220c-5028-4c93-b2ea-54d83b306986 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.051662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content Openstack-Request-Id: req-ebfe7c42-6880-4cdb-a9ca-00b7b579378c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.039974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': []} GOT Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name [0.336638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/CUSTOM_DT1 WITH [{'path': '/steps', 'value': [{'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}], 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e67b8ccd-9812-4349-a9cf-3b36e863c6a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b05eaa6d-229b-4581-8c79-d2a9eeab60cb", "created_at": "2025-05-19T19:09:45.753080+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b05eaa6d-229b-4581-8c79-d2a9eeab60cb", "rel": "self"}, {"href": "http://localhost/runbooks/b05eaa6d-229b-4581-8c79-d2a9eeab60cb", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name_old_api_version [0.027417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.091828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9c30fc1-b85a-420d-84d4-5124f8ffebf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:45.785187+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.068653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3', 'BAD_TRAIT']} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3fb7a1c7-d782-4b3f-9841-94170b8918c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'BAD_TRAIT' is not valid under any of the given schemas. Possible root cause: 'BAD_TRAIT' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_name_standard_trait [0.061618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/18c9d0c0-1b14-43bf-9bda-957db694cd5e WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7df981b4-18c3-4ff6-bbbd-2c5b021c84ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "18c9d0c0-1b14-43bf-9bda-957db694cd5e", "created_at": "2025-05-19T19:09:45.858855+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/18c9d0c0-1b14-43bf-9bda-957db694cd5e", "rel": "self"}, {"href": "http://localhost/runbooks/18c9d0c0-1b14-43bf-9bda-957db694cd5e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.082410s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=connector_id,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-325300a9-e994-4013-9b4f-b5bfcdec4dc4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_not_found [0.043247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/52fc6ca1-acd5-4f66-8a18-083966eaff49 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6640f72c-9e6a-4b3e-8603-1d2e0c3f358f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook 52fc6ca1-acd5-4f66-8a18-083966eaff49 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.117316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d79dba04-3a80-4bc2-9a9a-b274d29da5a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_project_scope [0.051506s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/2f250150-fb26-4729-a4d5-6b7c4e3f20fa WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9df401d0-5446-4a0b-84db-949bf9576e6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f250150-fb26-4729-a4d5-6b7c4e3f20fa", "created_at": "2025-05-19T19:09:45.954917+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2f250150-fb26-4729-a4d5-6b7c4e3f20fa", "rel": "self"}, {"href": "http://localhost/runbooks/2f250150-fb26-4729-a4d5-6b7c4e3f20fa", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.087304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.050236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ad858dd2-dedf-4654-8070-11ea7c376424 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_system_scope [0.071332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/396d3c10-d9c9-4353-83eb-fc298eb48cef WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3f40f2e-85f0-4a5d-b0fe-db434e9b4705 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "396d3c10-d9c9-4353-83eb-fc298eb48cef", "created_at": "2025-05-19T19:09:46.006873+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/396d3c10-d9c9-4353-83eb-fc298eb48cef", "rel": "self"}, {"href": "http://localhost/runbooks/396d3c10-d9c9-4353-83eb-fc298eb48cef", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.085991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-e42a826d-2aec-4f17-bb58-eca44626d4fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create [0.052565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e65203dd-4fdd-46cd-8e65-8a349b5c884d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/e65203dd-4fdd-46cd-8e65-8a349b5c884d Openstack-Request-Id: req-16829686-2355-4fc5-a764-3679998bc076 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e65203dd-4fdd-46cd-8e65-8a349b5c884d", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e65203dd-4fdd-46cd-8e65-8a349b5c884d", "rel": "self"}, {"href": "http://localhost/runbooks/e65203dd-4fdd-46cd-8e65-8a349b5c884d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/e65203dd-4fdd-46cd-8e65-8a349b5c884d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3bc30666-95e8-4b43-83a5-62e31e20b606 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e65203dd-4fdd-46cd-8e65-8a349b5c884d", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e65203dd-4fdd-46cd-8e65-8a349b5c884d", "rel": "self"}, {"href": "http://localhost/runbooks/e65203dd-4fdd-46cd-8e65-8a349b5c884d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.114443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8016ae5-949b-44f4-b2a4-a8c1c7d91579 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "67668393-5d17-4264-ae85-c7b5580ff651", "created_at": "2025-05-19T19:09:46.050340+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651", "rel": "self"}, {"href": "http://localhost/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7b189cd-1275-49f3-b76b-15ac52b91ca8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "67668393-5d17-4264-ae85-c7b5580ff651", "created_at": "2025-05-19T19:09:46.050340+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651", "rel": "self"}, {"href": "http://localhost/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2adb54e-76e2-4e73-8ec0-0d6224df0b13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "67668393-5d17-4264-ae85-c7b5580ff651", "created_at": "2025-05-19T19:09:46.050340+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651", "rel": "self"}, {"href": "http://localhost/volume/connectors/67668393-5d17-4264-ae85-c7b5580ff651", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_complex_step_args [0.041221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4ebf4b06-f931-4ebe-97d7-0582cc2998b5', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/4ebf4b06-f931-4ebe-97d7-0582cc2998b5 Openstack-Request-Id: req-4ed44786-8137-49af-b063-f41cc2da3a38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4ebf4b06-f931-4ebe-97d7-0582cc2998b5", "created_at": "2025-05-19T19:09:46.154006+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4ebf4b06-f931-4ebe-97d7-0582cc2998b5", "rel": "self"}, {"href": "http://localhost/runbooks/4ebf4b06-f931-4ebe-97d7-0582cc2998b5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_multi [0.056991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4cae510a-0552-4316-a327-d57b0b236921 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"ports": [{"uuid": "d9fb100c-03c4-4fc0-a16e-bd72a3cce410", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/d9fb100c-03c4-4fc0-a16e-bd72a3cce410", "rel": "self"}, {"href": "http://localhost/ports/d9fb100c-03c4-4fc0-a16e-bd72a3cce410", "rel": "bookmark"}]}, {"uuid": "48882243-da76-4771-b0c7-6ed9e9f92b2f", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/48882243-da76-4771-b0c7-6ed9e9f92b2f", "rel": "self"}, {"href": "http://localhost/ports/48882243-da76-4771-b0c7-6ed9e9f92b2f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_doesnt_contain_id [0.040486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3 Openstack-Request-Id: req-35fa1a2f-79dc-4b15-a994-39bb6ace4315 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3", "created_at": "2025-05-19T19:09:46.191509+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3", "rel": "self"}, {"href": "http://localhost/runbooks/f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4fc5122c-d16c-4956-a1e1-582a1dbe5d2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3", "created_at": "2025-05-19T19:09:46.191509+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3", "rel": "self"}, {"href": "http://localhost/runbooks/f3d8bbbc-6732-4324-afe6-27f3a8c3b7d3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.041666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7967b5ff-25d5-4746-8356-1ae69a166529 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"ports": [{"uuid": "f43f1a7d-92b0-45e5-97ca-5be7ea951d9c", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/f43f1a7d-92b0-45e5-97ca-5be7ea951d9c", "rel": "self"}, {"href": "http://localhost/ports/f43f1a7d-92b0-45e5-97ca-5be7ea951d9c", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.116259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a174ae6d-6087-4c27-9eab-8f1d9162e0ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "82d74dfd-c0b2-4c45-be1e-3883226c90db", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/82d74dfd-c0b2-4c45-be1e-3883226c90db", "rel": "self"}, {"href": "http://localhost/volume/connectors/82d74dfd-c0b2-4c45-be1e-3883226c90db", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3ff6f1a5-854c-422e-b3b2-762ca1ecf19a", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3ff6f1a5-854c-422e-b3b2-762ca1ecf19a", "rel": "self"}, {"href": "http://localhost/volume/connectors/3ff6f1a5-854c-422e-b3b2-762ca1ecf19a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "2a53fb3e-ec74-43e7-a659-075a45a45ce7", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2a53fb3e-ec74-43e7-a659-075a45a45ce7", "rel": "self"}, {"href": "http://localhost/volume/connectors/2a53fb3e-ec74-43e7-a659-075a45a45ce7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "45aa4d28-26cd-4e27-a943-6f143aa6125f", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/45aa4d28-26cd-4e27-a943-6f143aa6125f", "rel": "self"}, {"href": "http://localhost/volume/connectors/45aa4d28-26cd-4e27-a943-6f143aa6125f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a183d516-885b-46f8-9f4f-7d50a5a4683b", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a183d516-885b-46f8-9f4f-7d50a5a4683b", "rel": "self"}, {"href": "http://localhost/volume/connectors/a183d516-885b-46f8-9f4f-7d50a5a4683b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_error [0.056017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '099ede57-c0f9-4a52-865b-b34e2d546652', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c04d2d73-e786-4ffe-bffd-85adf3c3c3c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.061789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b00ee01c-19ea-4b0b-86d5-fad5878c62bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.020960s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.066545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3a04f6e-c748-4a23-b319-32ae1cd0a3e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [0.633371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97 Openstack-Request-Id: req-1ea0afe1-1b01-4ca5-965a-660783dd9ede X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/ports", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/states", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/volume", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/volume", "rel": "bookmark"}]} GET /v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9dadc8c8-d1ad-49d4-a0f7-bea7ece7e2fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": nul l, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/ports", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/states", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/volume", "rel": "self"}, {"href": "http://localhost/nodes/56e77c3a-1c6f-4b4d-9bc9-d3f13aea4c97/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '71ff86ff-9476-497f-b654-35d1e92fef16', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16 Openstack-Request-Id: req-aa49c9b6-5fb5-4d93-b916-18379d4fef94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "71ff86ff-9476-497f-b654-35d1e92fef16", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/ports", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654- 35d1e92fef16/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/states", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/volume", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/volume", "rel": "bookmark"}]} GET /v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5aa97b5e-e041-4ddf-9fbc-acdb8fc280aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "71ff86ff-9476-497f-b654-35d1e92fef16", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/ports", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/states", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/volume", "rel": "self"}, {"href": "http://localhost/nodes/71ff86ff-9476-497f-b654-35d1e92fef16/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'a1250297-f300-468e-908f-f90f4469071c', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c Openstack-Request-Id: req-05bf5686-9825-4fe2-820b-2e875ab0ecd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openst ack-Ironic-Api-Version: 1.40 {"uuid": "a1250297-f300-468e-908f-f90f4469071c", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c/states", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/volume", "rel": "bookmark"}]} GET /v1/nodes/a1250297-f300-468e-908f-f90f4469071c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-939190cc-126c-48fe-9592-59fa6d7c8cfc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a1250297-f300-468e-908f-f90f4469071c", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/ nodes/a1250297-f300-468e-908f-f90f4469071c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c/states", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a1250297-f300-468e-908f-f90f4469071c/volume", "rel": "self"}, {"href": "http://localhost/nodes/a1250297-f300-468e-908f-f90f4469071c/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'eeaf50c4-874f-489c-80b7-cd3e80ffdcc6', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6 Openstack-Request-Id: req-8e39b38f-2519-4cd2-bdcd-ce36825df00d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "eeaf50c4-874f-489c-80b7-cd3e80ffdcc6", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/ports", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/states", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/volume", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/volume", "rel": "bookmark"}]} GET /v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-25b3fc95- a86f-48fb-9e4e-52345198322e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "eeaf50c4-874f-489c-80b7-cd3e80ffdcc6", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/ports", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/states", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/volume", "rel": "self"}, {"href": "http://localhost/nodes/eeaf50c4-874f-489c-80b7-cd3e80ffdcc6/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '3a081868-67dd-4308-a2b7-08eed2bf144e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e Openstack-Request-Id: req-fdd14efb-147e-48f8-a581-14646331076c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "3a081868-67dd-4308-a2b7-08eed2bf144e", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/states", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/volume", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/volume", "rel": "bookmark"}]} GET /v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b8fff2a-1b6a-4100-a953-31dc36759ef7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "3a081868-67dd-4308-a2b7-08eed2bf144e", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/states", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/volume", "rel": "self"}, {"href": "http://localhost/nodes/3a081868-67dd-4308-a2b7-08eed2bf144e/volume", "rel": "bookmark"}]} POST /v1/nodes WIT H {'uuid': '073088a6-7ba3-40c9-b099-b646700dd077', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077 Openstack-Request-Id: req-d2a0ac43-71c4-435c-b2e2-ecbeaf21eb10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "073088a6-7ba3-40c9-b099-b646700dd077", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/ports", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/states", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/volume", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/volume", "rel": "bookmark"}]} GET /v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ddf6c8f-1652-4ed3-9e9d-53eaa428bdbb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "073088a6-7ba3-40c9-b099-b646700dd077", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_in terface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/ports", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/states", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/073088a6-7ba3-40c9-b099-b646700dd077/volume", "rel": "self"}, {"href": "http://localhost/nodes/073088a6-7ba3-40c9-b099-b646700dd077/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '72f2cf52-033b-45bb-a5b8-195595f311ac', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac Openstack-Request-Id: req-1cb2d6c2-0021-4c02-b367-36fbe69f2ac2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "72f2cf52-033b-45bb-a5b8-195595f311ac", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/states", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/volume", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/volume", "rel": "bookmark"}]} GET /v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4bd25b3d-bca7-4a51-9ebd-559bcc14ecd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "72f2cf52-033b-45bb-a5b8-195595f311ac", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/states", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/volume", "rel": "self"}, {"href": "http://localhost/nodes/72f2cf52-033b-45bb-a5b8-195595f311ac/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '00383970-e3d7-4fac-9405-e425e6dccf42', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42 Openstack-Request-Id: req-ea143c22-76fc-4962-87d7-938a0051317e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Versi on: 1.40 {"uuid": "00383970-e3d7-4fac-9405-e425e6dccf42", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/ports", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/states", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/volume", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/volume", "rel": "bookmark"}]} GET /v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-469611c8-e7c1-4721-9a26-396cd4aa4a47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "00383970-e3d7-4fac-9405-e425e6dccf42", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/00383970-e3d7- 4fac-9405-e425e6dccf42/ports", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/states", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/volume", "rel": "self"}, {"href": "http://localhost/nodes/00383970-e3d7-4fac-9405-e425e6dccf42/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '0407756d-6256-4f00-9400-5510ccd8a935', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935 Openstack-Request-Id: req-6281a92a-441c-41b8-a83f-4a1aaa765bb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "0407756d-6256-4f00-9400-5510ccd8a935", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/ports", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/states", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/volume", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/volume", "rel": "bookmark"}]} GET /v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f1782ed-cc08-4587-bb32-787da 6c5ade6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "0407756d-6256-4f00-9400-5510ccd8a935", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/ports", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/states", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0407756d-6256-4f00-9400-5510ccd8a935/volume", "rel": "self"}, {"href": "http://localhost/nodes/0407756d-6256-4f00-9400-5510ccd8a935/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'e621be3b-9150-4808-9846-4186b37b7230', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'rescue_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230 Openstack-Request-Id: req-d4d529f7-043d-4966-9277-cb178dbb905b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "e621be3b-9150-4808-9846-4186b37b7230", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", " local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/ports", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/states", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/volume", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/volume", "rel": "bookmark"}]} GET /v1/nodes/e621be3b-9150-4808-9846-4186b37b7230 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70e5ba12-7f08-4c86-b985-a2d5c6fe6d9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "e621be3b-9150-4808-9846-4186b37b7230", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/ports", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/states", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e621be3b-9150-4808-9846-4186b37b7230/volume", "rel": "self"}, {"href": "http://localhost/nodes/e621be3b-9150-4808-9846-4186b37b7230/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'cfaf0bc9-211 c-4602-90c8-78aaf9bc729a', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'noop', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a Openstack-Request-Id: req-9d4c8cc8-9801-4359-a0d2-6eb7d5d65c37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "cfaf0bc9-211c-4602-90c8-78aaf9bc729a", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/ports", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/states", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/volume", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/volume", "rel": "bookmark"}]} GET /v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-618625ba-f109-4ab7-8950-0e73f0f10024 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "cfaf0bc9-211c-4602-90c8-78aaf9bc729a", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "nam e": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/ports", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/states", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/volume", "rel": "self"}, {"href": "http://localhost/nodes/cfaf0bc9-211c-4602-90c8-78aaf9bc729a/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'f4bb8056-e3ee-49ea-924d-3318595cd3a5', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'bios_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5 Openstack-Request-Id: req-fc5c09d0-6b38-4bab-8d0c-d38ae97418f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "f4bb8056-e3ee-49ea-924d-3318595cd3a5", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/states", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/volume", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/volume", "rel": "bookmark"}]} GET /v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c85e878-9d0c-4ea2-a1a4-c487134248cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "f4bb8056-e3ee-49ea-924d-3318595cd3a5", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/states", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/volume", "rel": "self"}, {"href": "http://localhost/nodes/f4bb8056-e3ee-49ea-924d-3318595cd3a5/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_generate_uuid [0.076163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/2112ba4a-0d00-459a-a910-6c0ebaed08bd Openstack-Request-Id: req-dd845915-9849-4c88-b0c4-c6951804cb54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2112ba4a-0d00-459a-a910-6c0ebaed08bd", "created_at": "2025-05-19T19:09:46.328874+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2112ba4a-0d00-459a-a910-6c0ebaed08bd", "rel": "self"}, {"href": "http://localhost/runbooks/2112ba4a-0d00-459a-a910-6c0ebaed08bd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/2112ba4a-0d00-459a-a910-6c0ebaed08bd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c90e75f9-dc45-4d14-a8cd-0092445a6f92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2112ba4a-0d00-459a-a910-6c0ebaed08bd", "created_at": "2025-05-19T19:09:46.328874+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2112ba4a-0d00-459a-a910-6c0ebaed08bd", "rel": "self"}, {"href": "http://localhost/runbooks/2112ba4a-0d00-459a-a910-6c0ebaed08bd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} None {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_api_version [0.029406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '5faed0cb-aadb-4398-8b9c-543fe51df841', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.084756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-23b8baf8-f61a-478f-b523-b09c79cad693 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-306f7940-69a9-48b3-b197-cab4f1e0c8c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.069476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_empty_steps [0.065583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'c2c6c022-9f77-4ac3-9a81-5447aa2c579f', 'steps': [], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-841c293e-dd05-4091-9cc6-0425e466c30a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is too short\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.083078s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-4b26e8ec-933e-4fa7-9152-a9777a124ca0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:46.432162+00:00", "updated_at": null, "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} POST /v1/portgroups WITH {'uuid': '2418b8e1-da9c-4cbc-b5cf-f214952cecb3', 'name': '14ddf0aa-a752-47dc-bdf8-aee040d699e5', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8228a295-ec0d-4901-a5ef-597a8d2f50b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.097650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-712437b4-63cb-4967-8fbe-56757732a577 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "adb3f25f-2733-4891-9785-c14e5839d205", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/adb3f25f-2733-4891-9785-c14e5839d205", "rel": "self"}, {"href": "http://localhost/volume/connectors/adb3f25f-2733-4891-9785-c14e5839d205", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ae6fc7cc-c941-42b9-8a26-3c80664f87da", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ae6fc7cc-c941-42b9-8a26-3c80664f87da", "rel": "self"}, {"href": "http://localhost/volume/connectors/ae6fc7cc-c941-42b9-8a26-3c80664f87da", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d388dbb5-3ba3-494d-af99-4ecc391418b1", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d388dbb5-3ba3-494d-af99-4ecc391418b1", "rel": "self"}, {"href": "http://localhost/volume/connectors/d388dbb5-3ba3-494d-af99-4ecc391418b1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_extra [0.068334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '8609b805-0aaa-4b6a-85d0-54bae5dee773', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': 1, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d700b2b9-9b89-4436-b2cd-c89f7463c0be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'object', 'null'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.067453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-3e051f1f-f7dd-49b2-8334-b096c267b0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:46.511284+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a31dc60f-5160-4bad-a010-c2eb10844314 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:46.511284+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.070726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b03dd458-ae37-419c-9efc-35e8ae98f906 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/volume/connectors?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3674f264-52b8-43c2-b1ff-469155d8dc75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.264158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7f465b10-90b6-4512-a9d6-49af6610e8ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8ba56e75-f35a-4a4e-af6a-46fc07645025 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7f19bf9d-c356-4854-ab3c-a3ac3641b209 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ee4c9482-ce9f-44f0-96c8-82573b658c81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'manageme nt_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-56aeae51-bb40-4c62-af77-6af990daa811 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ad47128f-7fc6-4f79-9dfd-21202d01cf72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b829c7a8-2d04-49b4-8cd8-e786d1431de1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aa90bcdb-58fb-475a-a503-0699c2c697c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.058808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-a2e3041c-c1c4-4b18-a605-537cca364e83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:46.584015+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_foo [0.083647s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd4573c66-e345-434f-8331-1212712792c9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None, 'foo': 'bar'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b4dc2262-2020-4cb1-9b58-1e104f0dc33a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.072320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'traits': ['CUSTOM_4']} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3980cb80-990b-4881-b5dc-e076a7891851 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.054216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-5273967a-fc8c-4143-a005-a37e39d57ec6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:46.631489+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f7a74a5-ec1c-4bdd-bda5-2b0836cf6e7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:46.631489+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name [0.047420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 1, 'uuid': 'e5b4e21f-5caf-4dd1-afe9-4263b78099f0', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5300650c-7eaa-4d9b-856e-0e6271625da4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name_none [0.046228s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': None, 'uuid': 'beb1fedd-a587-4c36-9615-e98ae7c7f2b4', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3454742-960e-45e6-951a-b66101e83a67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: None is not of type 'string'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.066267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-df5d6852-ed04-46d0-995f-3be53aee01b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_steps [0.036864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '324a4e94-98c0-4c2e-97c0-495c9f2971cb', 'steps': {}, 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0b9a51dc-f013-42e7-ab44-702ecdf29c54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: {} is not of type 'array'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.113137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-040aa6f4-d82b-4b37-b57f-787bbd98c12c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args1 [0.046591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4abbe9d2-3670-4540-97d7-933a5e7655b8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-71153d5f-880b-40c2-80e1-9c2cc71414c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.102558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b2a7d3cf-137b-469e-8108-b7e86e3dae61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.105326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21 Openstack-Request-Id: req-480baa39-424a-450b-a7b3-660a45b80b00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ee6369d7-5083-45d8-b5ad-436f0335ee21", "created_at": "2025-05-19T19:09:46.800430+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21", "rel": "self"}, {"href": "http://localhost/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21/ports", "rel": "bookmark"}]} GET /v1/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc6d1733-91fd-46b2-b545-c6c0394646ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ee6369d7-5083-45d8-b5ad-436f0335ee21", "created_at": "2025-05-19T19:09:46.800430+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21", "rel": "self"}, {"href": "http://localhost/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ee6369d7-5083-45d8-b5ad-436f0335ee21/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args2 [0.044795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '2acaff8c-efd4-4c1e-b65c-06eb37a62116', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-958e45fc-9534-461f-87e8-5d30532fdce5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is not of type 'object'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.043999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'internal_info': 'info'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c49f624b-9dcf-4ccc-bc22-bf405bfce36a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.111941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-8246f8f9-f194-490b-baec-7c582dd335f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:46.843650+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a196147-be19-46bf-895f-ae4857fb67d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:46.843650+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_foo [0.042084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '51c72563-c788-43a6-b51e-f622ee7eaeea', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1, 'foo': 'bar'}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d83b120a-3445-41ba-8180-7e6de1624d8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.036700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'invalid-format', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3b08dcf6-c567-4117-8635-b7eedab4333e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface1 [0.039743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '16be4580-7f8e-44df-b8cd-6d44a61f95e4', 'steps': [{'interface': [3], 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-92a420c2-87fa-4d76-b8b6-05ad0388e39f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [3] is not of type 'string'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.042449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0e1a187-e827-4d5e-accb-07f04a57ffa0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.080843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-d094cecd-f148-451e-aa97-ea3364af0ce0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:46.939741+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-755c5152-3d98-4d63-b24d-d0bbbe0f31fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:46.939741+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface2 [0.039757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'aed78d11-8763-42e5-a363-c9aa2c0fff59', 'steps': [{'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-463b0c26-0e4a-4049-9b91-84b1efb5073e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_negative_order [0.048618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '063fdbac-5d4a-49fb-945c-d30d7b084622', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': -1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67f0ef89-ef83-42d8-8be4-63938e82eb16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: -1 is less than the minimum of 0\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.069943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': 'invalid-format', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d76b195b-9d07-4ad1-8a43-5cf2fa394b9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.045782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0aa3498e-8a8d-4789-adaf-2c07284b92f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ae1452c0-a8ae-4008-aded-b55127357f04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_order [0.064455s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '849ddb96-4605-452d-bfb4-0fad0782a983', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 'not a number'}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c29b8111-91ac-46a5-ba98-0fefa93b4d5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.150430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-202b4744-e07c-433d-a511-c3d007685060 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.069171+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5b16b1f-8d35-4779-9fd9-287c6cd5423e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.069171+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.049700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'properties': {'bond_prop': 123}} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-2b7020ef-5412-42eb-badf-048c6c5dc73c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.115317+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "802.3ad", "name": "fooname", "properties": {"bond_prop": 123}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_step [0.037632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '12a89aa5-0502-44bf-93b2-5606f064e21f', 'steps': [{'interface': 'raid', 'step': 1, 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4685f4a2-06df-4f08-aef2-ab034148d9f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.341634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a82ded53-d1ae-4766-a979-6fe85a74a9f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.033263s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'aa:bb_cc', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8081a033-fd65-4dc7-b082-fd7e2a4567e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_long_name [0.037514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'ce1baee0-eb02-4bc2-87ea-330d93b6f501', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/ce1baee0-eb02-4bc2-87ea-330d93b6f501 Openstack-Request-Id: req-039dc091-31fe-453f-a2bc-b16418ada37e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ce1baee0-eb02-4bc2-87ea-330d93b6f501", "created_at": "2025-05-19T19:09:47.160800+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ce1baee0-eb02-4bc2-87ea-330d93b6f501", "rel": "self"}, {"href": "http://localhost/runbooks/ce1baee0-eb02-4bc2-87ea-330d93b6f501", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.063461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'foo', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-5f7ea6e1-719b-442d-9f8b-f9449b41a96c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.205950+00:00", "updated_at": null, "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "foo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-946317d5-274b-4641-a916-8ab727e21a99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.205950+00:00", "updated_at": null, "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "foo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_name_invalid_too_long [0.116249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '51591e9c-b400-44a3-b224-56f86e3528b8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a845c46-2a4d-4c2f-9b62-054da7f8226d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.177538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-ca9ebcf3-02eb-4e38-a898-ccfb20b681a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.267819+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20acb5da-383e-49a8-9c6a-6cdbed16b3a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.267819+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.067596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-3ddb6f60-073b-4d3a-9739-b3368c6f28a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.280931+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ccca7b9-9987-4063-8240-69e3a4b5d32c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.280931+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_name [0.063801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'uuid': '9adc02b8-1a02-4b05-9fbc-336ab1747ef0', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b5fe385-edf1-49e8-a1f3-a68e8c123502 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'name' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.054160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d108d7e9-4ee4-418f-b7a6-86bf887d01ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.034360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b8190cd1-d8c5-4644-a6cb-5c7a1889064e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_conductor_group [0.104344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-2d82f40d-d71f-4ce0-98e7-55ecd44d1475 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.358136+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39402b78-35ff-43aa-9ae5-3af7685b63f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.358136+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "magic", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes /1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_steps [0.054186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '0205ae56-b0ce-4d59-b3fe-7df7fd206515', 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-14284127-ef89-4114-9eee-f6217e54b797 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'steps' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_interface [0.034621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'a599a3c1-4cc0-4317-a667-7fa92cb215c9', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-af972598-b8a8-4d55-88d4-bdcc802d7a7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'interface' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.059990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-bff42f6b-624d-4e63-9c88-1fdf9ffec8a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e96418f-e5c7-44dc-b1e9-5c39eb0e1139 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.312672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e30566cf-d4d4-45d9-8e51-de1bf60c3d9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_order [0.042013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '11c4c744-1aba-4db9-b336-cf91d7fe82fe', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67b6feb7-b4e9-4112-acde-f30837dcce3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'order' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.057605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-886f9b54-6f78-4336-95a2-47636c3a0654 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.488173+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fed0861-6003-45cc-89ef-5fa9e31761bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.488173+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.037459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1f1a9843-ca48-413e-b175-feacb7758b15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.176799s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-d9d890da-61fd-4fe2-9e15-105905bbd036 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.543188+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8dd76d4b-e848-4c58-a18b-675995c3c6e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.543188+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "class1", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_step [0.089221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '3b377d5e-54ff-4f20-863a-eb686cb2a136', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e22f01cb-332b-40ea-abad-5839f01dddf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'step' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.052742s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-da951cf5-8b2b-418f-a35f-2115841eb84e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:09:47.595359+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_public_runbook_project_scope_fails [0.086058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'c22a25f0-aef8-4db8-aa3e-28c915ef0687', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': True, 'owner': 'catsay'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-36c506fc-5229-4099-858e-a243a1f6ca7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.104662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'reservation': 'fake'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e999ae87-0cca-4d31-a3ed-0fba4abf4aed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('reservation' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_bmc_address_as_none [0.089115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': None, 'bmc_v6address': None, 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-57087ab3-22f6-42a5-9bb8-8bb656e4f01c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "783509be-565a-41ff-acf3-6e01d6fef95a"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.041129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40d34614-d55b-4aa2-8871-318f5d3e6c4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_project_scope_fails [0.050906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '630a8406-c8aa-454f-9dee-38c5f88281a2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': 'catsay'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-09c3ccae-fbdb-4da6-b29a-a8f382a0b0ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.043139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-0b19e487-d604-4a61-8e3e-6a7435c453b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1d4dba1a-0da4-4d07-9370-4ff82ed41db9"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_system_scope [0.041541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '17652bd0-c14b-4e1c-9044-b2421debff75', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': 'catsay'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/17652bd0-c14b-4e1c-9044-b2421debff75 Openstack-Request-Id: req-3dc2660f-646e-41ab-80dc-c6fae780d4ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "17652bd0-c14b-4e1c-9044-b2421debff75", "created_at": "2025-05-19T19:09:47.754545+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/17652bd0-c14b-4e1c-9044-b2421debff75", "rel": "self"}, {"href": "http://localhost/runbooks/17652bd0-c14b-4e1c-9044-b2421debff75", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/17652bd0-c14b-4e1c-9044-b2421debff75 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7c76aed-d831-4e19-8862-0eb10a151133 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "17652bd0-c14b-4e1c-9044-b2421debff75", "created_at": "2025-05-19T19:09:47.754545+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/17652bd0-c14b-4e1c-9044-b2421debff75", "rel": "self"}, {"href": "http://localhost/runbooks/17652bd0-c14b-4e1c-9044-b2421debff75", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_invalid_schema [0.038529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42'}, 'test': 42} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-66b9a669-3f51-490b-bee8-aa2bef74cdff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.070816s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4d7cb42a-9806-4f4e-b8ba-2b8a309316e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_new_api [0.043247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-97eabd76-958c-45af-9b29-8e3d91268a5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "fb151a03-b8e4-431a-a3c2-fed99fe0c0b5", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "links": [{"href": "http://localhost/v1/nodes/fb151a03-b8e4-431a-a3c2-fed99fe0c0b5", "rel": "self"}, {"href": "http://localhost/nodes/fb151a03-b8e4-431a-a3c2-fed99fe0c0b5", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_project_scope [0.061294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'f0f31384-127d-4161-a5f1-0b27d25936aa', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/f0f31384-127d-4161-a5f1-0b27d25936aa Openstack-Request-Id: req-9cb382a0-3aa0-4a62-b80b-91aecbc9b3b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f0f31384-127d-4161-a5f1-0b27d25936aa", "created_at": "2025-05-19T19:09:47.814489+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f0f31384-127d-4161-a5f1-0b27d25936aa", "rel": "self"}, {"href": "http://localhost/runbooks/f0f31384-127d-4161-a5f1-0b27d25936aa", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/f0f31384-127d-4161-a5f1-0b27d25936aa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-192e945b-f805-49bb-8957-20453a9ed22e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f0f31384-127d-4161-a5f1-0b27d25936aa", "created_at": "2025-05-19T19:09:47.814489+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f0f31384-127d-4161-a5f1-0b27d25936aa", "rel": "self"}, {"href": "http://localhost/runbooks/f0f31384-127d-4161-a5f1-0b27d25936aa", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.056418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_system_scope [0.054638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '551880fb-7b14-41cb-af64-aa5003c2a5db', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/551880fb-7b14-41cb-af64-aa5003c2a5db Openstack-Request-Id: req-c5202eca-a0a0-4a17-9725-4be73d224b4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "551880fb-7b14-41cb-af64-aa5003c2a5db", "created_at": "2025-05-19T19:09:47.872970+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/551880fb-7b14-41cb-af64-aa5003c2a5db", "rel": "self"}, {"href": "http://localhost/runbooks/551880fb-7b14-41cb-af64-aa5003c2a5db", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/551880fb-7b14-41cb-af64-aa5003c2a5db WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24411fec-56fd-42b0-8822-bab8dc79daf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "551880fb-7b14-41cb-af64-aa5003c2a5db", "created_at": "2025-05-19T19:09:47.872970+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/551880fb-7b14-41cb-af64-aa5003c2a5db", "rel": "self"}, {"href": "http://localhost/runbooks/551880fb-7b14-41cb-af64-aa5003c2a5db", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.064962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'interfaces': [{'mac_address': 'meow'}]}, 'test': 42} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eb8e19c9-d9d7-4dcf-8560-6f066382abda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.047826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c49099f7-47c0-42d6-bb46-5eb15ddc526f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_standard_trait_name [0.042573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '2cd47521-a643-4f1c-8535-ea66bcc95194', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/2cd47521-a643-4f1c-8535-ea66bcc95194 Openstack-Request-Id: req-edddd07a-1340-413b-af87-5ce2e9fe0c9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2cd47521-a643-4f1c-8535-ea66bcc95194", "created_at": "2025-05-19T19:09:47.922651+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2cd47521-a643-4f1c-8535-ea66bcc95194", "rel": "self"}, {"href": "http://localhost/runbooks/2cd47521-a643-4f1c-8535-ea66bcc95194", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.076575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'bmc_v6address': '2001:db8::42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-57cca50c-32ff-4c75-b2b3-3525b1008a54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.079306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_step_string_order [0.048595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '55d95ba5-3625-4039-bc82-f64ae8a6fbc5', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': '1'}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/55d95ba5-3625-4039-bc82-f64ae8a6fbc5 Openstack-Request-Id: req-201b66ed-96ac-4822-88a9-d4aa90548b24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "55d95ba5-3625-4039-bc82-f64ae8a6fbc5", "created_at": "2025-05-19T19:09:47.973325+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/55d95ba5-3625-4039-bc82-f64ae8a6fbc5", "rel": "self"}, {"href": "http://localhost/runbooks/55d95ba5-3625-4039-bc82-f64ae8a6fbc5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": "1"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_steps_invalid_duplicate [0.034190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '1c6ea4b7-42e8-438e-bbe0-3913fa8081b6', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'order': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8415261e-0f10-4b14-90e9-d5e26d33bab7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.058195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c4cb5710-e201-45a9-940c-b9709ecba15f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_empty [0.031882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02acd976-0ffe-48ef-bd30-e67db5f29333 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": []} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one [0.028791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3784fed1-4681-4d45-8235-eabd3c23d3c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.046133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted Openstack-Request-Id: req-58469cc5-306e-4c1c-899b-55c09e0bf59e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one_wrong_version [0.029666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ee49bb6-4773-41ef-9043-d06fc6a2fe03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_post [0.032100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/shards WITH {} GOT Response: 405 Method Not Allowed Allow: GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.023002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/shards WITH {} GOT Response: 405 Method Not Allowed Allow: GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.093427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted Openstack-Request-Id: req-d228552a-fa24-4770-916e-f7b1648bb194 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_wrong_version [0.034203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-81d5941c-3dfc-4d17-821a-3f299d569cae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.080270s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-2493bfca-7a1f-4c03-86f7-e5753c5c5507 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.315435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1875cd22-4a36-4b00-bf45-fa07bb1e7146 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "rel": "self"}, {"href": "http://localhost/nodes/eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6bafd10-6aff-44d6-ac8e-4d34ffc199ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "rel": "self"}, {"href": "http://localhost/nodes/eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-efadd34c-3cd5-4a00-b94e-c549c1c7f058 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "rel": "self"}, {"href": "http://localhost/nodes/eaa5e4a4-68ed-4f2d-9fb3-578b239c01d1", "rel": "bookmark"}]}, "config": { "metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_multiple_shards [0.096478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e42fbca-acbd-4daf-a9f1-0893d2983794 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "shard5", "count": 5}, {"name": "shard4", "count": 4}, {"name": "shard3", "count": 3}, {"name": "shard2", "count": 2}, {"name": "shard1", "count": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.059100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a4d6d11-6758-41d6-b121-4d979763e6ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.042332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4628851c-78f9-4aac-8c79-a08c2541c30c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "aaf395c3-694f-40f0-ac0c-cfc35f52092b", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/aaf395c3-694f-40f0-ac0c-cfc35f52092b", "rel": "self"}, {"href": "http://localhost/nodes/aaf395c3-694f-40f0-ac0c-cfc35f52092b", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "some-value", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.050789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73aa7c4f-0185-4d3c-95ba-b52b8bd3e025 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb6c3508-87be-4402-8da4-98d7a09f931c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.053807s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81eef218-0af7-4a84-81d8-f22a26421d1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "None", "count": 5}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.050974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=b2919608-dcdf-4475-b4d8-6eb60a88770b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a89928d-c3c8-461c-ac06-cb72a417797a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "b2919608-dcdf-4475-b4d8-6eb60a88770b", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/b2919608-dcdf-4475-b4d8-6eb60a88770b", "rel": "self"}, {"href": "http://localhost/nodes/b2919608-dcdf-4475-b4d8-6eb60a88770b", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.044711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=6d960c61-7f4f-4854-afca-ee5dd94412a1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8dd3ebb7-25e2-4287-8972-032b316b0054 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "6d960c61-7f4f-4854-afca-ee5dd94412a1", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/6d960c61-7f4f-4854-afca-ee5dd94412a1", "rel": "self"}, {"href": "http://localhost/nodes/6d960c61-7f4f-4854-afca-ee5dd94412a1", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_one_shard [0.062302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db9e46c0-376c-4ecc-b80b-c2849503ddd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "shard1", "count": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.026291s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.049043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=not-a-valid-address,80:00:02:48:fe:80:00:00:00:00:00:00:f4:52:14:03:00:54:06:c2,11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7430262e-9dec-40cf-a0dd-3d7a8b1a0790 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "9316b19b-eb48-4467-9628-52339ea2650f", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/9316b19b-eb48-4467-9628-52339ea2650f", "rel": "self"}, {"href": "http://localhost/nodes/9316b19b-eb48-4467-9628-52339ea2650f", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.025953s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_addresses [0.036402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21d39a4a-d959-4265-8bc4-6398911cfe18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.034865s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.035219s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin [1.103908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9745bf6-8fe7-469a-a38d-fa38b6f85b1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:47.557612+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.022504s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_node_uuid [0.097707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4d71ea56-3220-411a-8b88-a8d3cf7c23a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.253121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ad7a4bca-b42c-4d2e-8c55-d66c483e79ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.032194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test WITH {'test_key': 'test_value'} GOT Response: 202 Accepted Openstack-Request-Id: req-7ace81af-b04d-49d3-aa92-c3dbaf320c1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.038970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=cc4f7a5b-f340-4bc8-880f-55dc6cda6d2e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9396f565-2b33-4427-b913-48bc3a7af8d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "cc4f7a5b-f340-4bc8-880f-55dc6cda6d2e", "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver_internal_info": {"private_state": "secret value", "agent_secret_token": "******"}, "links": [{"href": "http://localhost/v1/nodes/cc4f7a5b-f340-4bc8-880f-55dc6cda6d2e", "rel": "self"}, {"href": "http://localhost/nodes/cc4f7a5b-f340-4bc8-880f-55dc6cda6d2e", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "234567890", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.036404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a14ecf0-787e-490b-9db3-543ed20cc902 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"cat": "meow"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.044350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-07e86c0d-b22c-4c6c-badb-e7e119b83fca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.030756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru WITH {'foo': 'bar'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-46cedcee-7fe1-4739-9294-27c6420ac758 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.029780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fcb430fc-3936-4586-862a-2a163aa74b90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.020482s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member [0.168177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0d9bb2f8-9e11-4449-8fa7-f5219949385d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.037302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cde92de0-b435-4145-a593-0df3da1d9059 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.026996s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.017642s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.036698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=3465242f-a7fe-41fd-bda3-b2913d459343 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-65759e90-eb74-4662-b4c5-a85fe2d7f3c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.020562s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.059530s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.029683s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.023451s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.018987s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.299411s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.018110s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.024658s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.017971s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer [0.148652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c5c2acc-0bc9-4d20-86de-ce4b26f5fbf6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:48.804815+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.028134s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.033684s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.018995s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.029241s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.018742s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.022822s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.027064s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.056463s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ccac87ed-c569-4653-b884-c2e8bbec2269 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "72ff7c05-ceb1-41aa-97d1-1beeda2cb39d", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/72ff7c05-ceb1-41aa-97d1-1beeda2cb39d", "rel": "self"}, {"href": "http://localhost/ports/72ff7c05-ceb1-41aa-97d1-1beeda2cb39d", "rel": "bookmark"}]}, {"uuid": "0c53e76b-509e-4f06-9917-95089c99fdea", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/0c53e76b-509e-4f06-9917-95089c99fdea", "rel": "self"}, {"href": "http://localhost/ports/0c53e76b-509e-4f06-9917-95089c99fdea", "rel": "bookmark"}]}, {"uuid": "340c95c5-28d6-42a4-a7ce-af2fb055bbf6", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/340c95c5-28d6-42a4-a7ce-af2fb055bbf6", "rel": "self"}, {"href": "http://localhost/ports/340c95c5-28d6-42a4-a7ce-af2fb055bbf6", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=340c95c5-28d6-42a4-a7ce-af2fb055bbf6"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.020668s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.027319s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid [0.018883s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.019197s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.021609s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.065823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0cc4086-e50b-45c5-bbf4-e394ae2655d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "7b97bc19-87fc-4f51-b7cd-35a4ed553883", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/7b97bc19-87fc-4f51-b7cd-35a4ed553883", "rel": "self"}, {"href": "http://localhost/ports/7b97bc19-87fc-4f51-b7cd-35a4ed553883", "rel": "bookmark"}]}, {"uuid": "7cf20381-95c4-4b76-baa9-a94f30faa859", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/7cf20381-95c4-4b76-baa9-a94f30faa859", "rel": "self"}, {"href": "http://localhost/ports/7cf20381-95c4-4b76-baa9-a94f30faa859", "rel": "bookmark"}]}, {"uuid": "1fe5df2d-1546-4840-a354-ee06e8fb7dc1", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/1fe5df2d-1546-4840-a354-ee06e8fb7dc1", "rel": "self"}, {"href": "http://localhost/ports/1fe5df2d-1546-4840-a354-ee06e8fb7dc1", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=1fe5df2d-1546-4840-a354-ee06e8fb7dc1"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin [0.152359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ae8955f-d3e8-4446-a0c7-4126ad0f6d75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:48.978032+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.023880s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.061561s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.020966s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.059409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57f4b9d1-7138-4403-b53a-51f4b0591fd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "d93a1343-be77-4b8e-a60e-43cd3c7dc864", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d93a1343-be77-4b8e-a60e-43cd3c7dc864", "rel": "self"}, {"href": "http://localhost/ports/d93a1343-be77-4b8e-a60e-43cd3c7dc864", "rel": "bookmark"}]}, {"uuid": "a9dd8f0b-bf1a-4293-9115-1baebaf1cca6", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a9dd8f0b-bf1a-4293-9115-1baebaf1cca6", "rel": "self"}, {"href": "http://localhost/ports/a9dd8f0b-bf1a-4293-9115-1baebaf1cca6", "rel": "bookmark"}]}, {"uuid": "15b0eb8f-30b5-4357-a671-66e857730527", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/15b0eb8f-30b5-4357-a671-66e857730527", "rel": "self"}, {"href": "http://localhost/ports/15b0eb8f-30b5-4357-a671-66e857730527", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=15b0eb8f-30b5-4357-a671-66e857730527"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.023358s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.058429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6957ea63-f764-41ff-bf75-378564b51f0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} GET /v1/volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4a8d2a9-c208-4f8b-b755-d4d4cf1f1a82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} GET /volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-042a249a-0d5f-4508-8818-611b6601ec26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0eb0be4-ec28-4da2-9a02-30841b53c0e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} GET /volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2cdb64a8-4a0b-420c-98c1-c5688be485e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21372012-76cb-4fe1-bc4b-c7643f3ce69a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} GET /volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40a0c356-4c63-4ca5-97eb-6166c9457fdb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} {1} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.032341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e3be87cf-f229-4502-ba71-7678788acdd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.056004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21b8552e-0061-4680-a310-5d858557580a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:49.150802+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "physical_network": "physnet1", "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.053306s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.145029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebb74eff-0ddd-4248-9b8b-56ad9951adce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "1d455e84-be36-407f-93d7-ba50b6444c26", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields [0.036793s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.061573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-88b7a6c1-0fae-479b-a6b1-d6152d2b8add X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.029897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8dd7c977-5fbf-4a5e-9b0b-a75305adf7b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links [0.042077s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.028341s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.043698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7879c5a-97e0-4383-8566-6342a387c151 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:49.289977+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.050351s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.051368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87ef24e3-29de-4a68-b43f-4584f11f2e8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:49.348025+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "physical_network": "physnet1", "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin [0.148802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3aeac3f7-0931-4a1f-baca-5ab606778e4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "6f59a5a0-cc74-4c1e-9c17-5e5d89878de8", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.047659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61d2b884-709b-4ad4-b3cb-f583c4b3d14e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} GET /v1/ports?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0240b5a1-3ddd-47ad-b817-b33e869718d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.052823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-38dc34fc-75ee-49bf-84c4-a7856193106f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-441528c5-b9e5-4566-b27d-70ccb2c5240e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.070914s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c87ae76b-2548-43eb-946e-eb18cfce4fb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:49.452506+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d680fac-4f78-4ce5-a9ed-e9d4626d2fee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:49.452506+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.077851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8fbccb5a-143f-4afb-8f0c-da6fde621f11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "404c9b98-c225-490a-a89f-d75ca3643bb0", "created_at": "2025-05-19T19:09:49.463327+00:00", "updated_at": null, "address": "52:54:00:cf:2d:30", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/404c9b98-c225-490a-a89f-d75ca3643bb0", "rel": "self"}, {"href": "http://localhost/ports/404c9b98-c225-490a-a89f-d75ca3643bb0", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "9eb4c666-00e2-4cd7-b448-0643f02b998b", "created_at": "2025-05-19T19:09:49.470771+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/9eb4c666-00e2-4cd7-b448-0643f02b998b", "rel": "self"}, {"href": "http://localhost/ports/9eb4c666-00e2-4cd7-b448-0643f02b998b", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.201230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c5b7a25f-d4a1-4e3b-a989-67d3f8fe0ece X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin [0.150708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11485afb-e792-4c45-90d6-f6d3007e72ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:49.421363+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-19T19:09:49.422353+00:00", "updated_at": "2025-05-19T19:09:49.429392+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "15733823-dddf-4cfd-97e5-8813d877fba0", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "15733823-dddf-4cfd-97e5-8813d877fba0", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-19T19:09:49.465651+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.034135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0c98b606-a831-421e-8ecd-cf3a6f8e2ac1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.053642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-08c12ca0-2584-4f69-a054-0485a3516aa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.058774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c13e5e45-5884-4e88-a337-b34dda7da945 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.066342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/164b10e3-c21c-4a18-a55f-ad671dcd7feb Openstack-Request-Id: req-0e4a3693-2582-4d60-b145-aebce3dfd6e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "164b10e3-c21c-4a18-a55f-ad671dcd7feb", "created_at": "2025-05-19T19:09:49.580011+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/164b10e3-c21c-4a18-a55f-ad671dcd7feb", "rel": "self"}, {"href": "http://localhost/volume/connectors/164b10e3-c21c-4a18-a55f-ad671dcd7feb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/164b10e3-c21c-4a18-a55f-ad671dcd7feb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4fc82dab-a18d-4d9a-9c18-d7f3b0318387 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "164b10e3-c21c-4a18-a55f-ad671dcd7feb", "created_at": "2025-05-19T19:09:49.580011+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/164b10e3-c21c-4a18-a55f-ad671dcd7feb", "rel": "self"}, {"href": "http://localhost/volume/connectors/164b10e3-c21c-4a18-a55f-ad671dcd7feb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.026743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.052835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f763b6be-cb5e-4a93-8d5f-93bd82f170fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.130539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9209d4a1-0d93-4a87-9f2f-6ffc7b5583fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.038535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': 123} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5231dfd0-5d1f-46d6-bebc-86d954b2368e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.041932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c6181b55-fa33-4280-adcb-6a6be6a053e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.036449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd13b852-243f-4603-9f4c-3dc02f51ba14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.208384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7013eeff-f96a-41de-a33e-0c6aef48a79a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.054170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-841cd037-9309-44f8-813d-fb7cf26e0a31 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.108621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ec0ce4e5-7d8e-4ccc-9687-ca38eeb06269 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer [0.168532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a65fddc-269f-43ce-8695-f5235361b147 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:49.719364+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-19T19:09:49.720388+00:00", "updated_at": "2025-05-19T19:09:49.754415+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "fd9ba145-5558-4c46-9f18-a17db57541cb", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "fd9ba145-5558-4c46-9f18-a17db57541cb", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-19T19:09:49.777574+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.146332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a66973ff-e40b-4768-ab0c-cfbb15f36d27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.089823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f00da8e-c437-4432-9669-c2990cd225ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin [0.112742s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7809647-9306-457f-b141-a46f75db404c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "6e5ff166-ebbc-4bd1-9664-741b4e1bc7d8", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/6e5ff166-ebbc-4bd1-9664-741b4e1bc7d8", "rel": "self"}, {"href": "http://localhost/ports/6e5ff166-ebbc-4bd1-9664-741b4e1bc7d8", "rel": "bookmark"}]}, {"uuid": "78e88811-2a5a-4702-a78f-34bc0abc0f5e", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/78e88811-2a5a-4702-a78f-34bc0abc0f5e", "rel": "self"}, {"href": "http://localhost/ports/78e88811-2a5a-4702-a78f-34bc0abc0f5e", "rel": "bookmark"}]}, {"uuid": "f5c1da4d-abc0-4103-bf7c-40e2f68fe608", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/f5c1da4d-abc0-4103-bf7c-40e2f68fe608", "rel": "self"}, {"href": "http://localhost/ports/f5c1da4d-abc0-4103-bf7c-40e2f68fe608", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.137588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ed8357c-1afb-405e-889c-e28693af69b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:49.874213+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.088857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-805a8722-a620-4e06-a7b6-2f7a883e432f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.127023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0c2bcb0d-dcc6-49a8-bcd2-744076208ddb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.113033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-abd8b627-2f87-4eb3-aa51-d3fd429d6983 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": []} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.102943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b8f4b31-1810-42d0-8325-c99221bf33c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.082240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-09cdd4c7-a0c8-4288-8bc4-2471ce9db281 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member [0.138008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-77333df7-648e-4b96-a155-dfa37bf919b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.115259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3e597bc4-6275-4a13-be64-fe9ce1474a01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.085940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-69e49532-9343-436b-8f53-33f6d2f73e84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.145756+00:00", "updated_at": null, "connector_id": "test-connector-id-456", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} POST /v1/volume/connectors WITH {'uuid': 'e379b45f-dc1d-4e54-9e79-03579299f61c', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4a68f09e-4d53-490d-8369-a5b1cac26a41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.102973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-be5ba114-d27d-4efd-9f3f-cc888b68a40a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.133701s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f383ef94-2de7-406a-b220-af3013f282ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "a5ef8b19-95bc-474a-8faa-592fdbf65a81", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a5ef8b19-95bc-474a-8faa-592fdbf65a81", "rel": "self"}, {"href": "http://localhost/ports/a5ef8b19-95bc-474a-8faa-592fdbf65a81", "rel": "bookmark"}]}, {"uuid": "5357a04e-752d-4d00-a585-1fc802f4b2ad", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/5357a04e-752d-4d00-a585-1fc802f4b2ad", "rel": "self"}, {"href": "http://localhost/ports/5357a04e-752d-4d00-a585-1fc802f4b2ad", "rel": "bookmark"}]}, {"uuid": "e63245cf-c632-4321-9950-597bd17509cb", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/e63245cf-c632-4321-9950-597bd17509cb", "rel": "self"}, {"href": "http://localhost/ports/e63245cf-c632-4321-9950-597bd17509cb", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.071448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-4e2e518f-2438-49c5-bdcd-8efb94a02327 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.206931+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d57347de-8e79-439b-b575-78126f7d6294 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.206931+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.173229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13c49010-6242-4309-979c-8750a9893070 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:09:50.166884+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.041564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c6040338-c823-4d37-af39-065c87614693 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.275247+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.074420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f84038a4-2f74-497c-bcf5-c1e3ff26f84b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.269808+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.053681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-584a1492-75ed-40c9-8991-de8e18dce78e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.148355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-39f35f80-abf8-49cf-93ac-6b3f08bdbe65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.112722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8a12869-1f8e-40d0-8585-9a780c12833c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.362068+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.086464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.042164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-23bc07b5-0c56-42cb-9af0-aaccdb2c595c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.230984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-497d292a-71c6-4309-8481-1362a4ac34b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.091049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89846b70-cabf-40f8-b458-50895a0b6c24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.478388+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.062245s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c2140661-bc35-45c1-a50e-e057de1597d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.215949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-14d7f1ea-0372-448b-866f-aa2a0c4a3548 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.077031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4&node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-865254fa-a0f1-4641-bed6-d8cafa96b06b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.070801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c000d10-f665-40b8-b233-a10f8d3fc303 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "c350dde5-fa6e-421f-9fc2-3e85298a6faf", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c350dde5-fa6e-421f-9fc2-3e85298a6faf", "rel": "self"}, {"href": "http://localhost/volume/targets/c350dde5-fa6e-421f-9fc2-3e85298a6faf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "90b87460-c8d3-4006-89e0-70ea6a32041c", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/90b87460-c8d3-4006-89e0-70ea6a32041c", "rel": "self"}, {"href": "http://localhost/volume/targets/90b87460-c8d3-4006-89e0-70ea6a32041c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5327aab4-9270-4a9c-9270-560096e44723", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5327aab4-9270-4a9c-9270-560096e44723", "rel": "self"}, {"href": "http://localhost/volume/targets/5327aab4-9270-4a9c-9270-560096e44723", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=3&marker=5327aab4-9270-4a9c-9270-560096e44723"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.160898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-990aceb5-549d-45d9-b48e-da8c8385e7b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.092798s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-abb59c29-eae6-499b-9f5b-f1c42fbd0d8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.085028s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47fc63f9-f44f-4257-91eb-d8fdc193d0b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "72a3bfc7-3f6f-4b85-b08d-b876c3b7caa2", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/72a3bfc7-3f6f-4b85-b08d-b876c3b7caa2", "rel": "self"}, {"href": "http://localhost/volume/targets/72a3bfc7-3f6f-4b85-b08d-b876c3b7caa2", "rel": "bookmark"}]}, {"uuid": "8c566e92-80d4-4066-bff3-4d6625b64bee", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/8c566e92-80d4-4066-bff3-4d6625b64bee", "rel": "self"}, {"href": "http://localhost/volume/targets/8c566e92-80d4-4066-bff3-4d6625b64bee", "rel": "bookmark"}]}, {"uuid": "01249773-8e29-4d49-bf1c-a0232fa639fe", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/01249773-8e29-4d49-bf1c-a0232fa639fe", "rel": "self"}, {"href": "http://localhost/volume/targets/01249773-8e29-4d49-bf1c-a0232fa639fe", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=01249773-8e29-4d49-bf1c-a0232fa639fe"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.103750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cfcf0ea6-385b-49fd-803c-394a4783a8cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.649228+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.056656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b27ddf24-64ea-4ed8-a97c-8568aae098c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "d6fd48bb-c437-465a-9297-dee35c160261", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d6fd48bb-c437-465a-9297-dee35c160261", "rel": "self"}, {"href": "http://localhost/volume/targets/d6fd48bb-c437-465a-9297-dee35c160261", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e23ec0de-c539-481a-ad8b-e6ae8f642288", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e23ec0de-c539-481a-ad8b-e6ae8f642288", "rel": "self"}, {"href": "http://localhost/volume/targets/e23ec0de-c539-481a-ad8b-e6ae8f642288", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "84e56652-9af7-4426-8f82-9516df8d38eb", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/84e56652-9af7-4426-8f82-9516df8d38eb", "rel": "self"}, {"href": "http://localhost/volume/targets/84e56652-9af7-4426-8f82-9516df8d38eb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=3&marker=84e56652-9af7-4426-8f82-9516df8d38eb"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.082524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f1da528-c670-4172-9b3e-ec1d10c8d76d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": []} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.109677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6377dd5e-1fdd-4802-b2a4-cbeb2737852d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.045746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea41d7a7-61b8-4e93-913e-b3f9b8daf372 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "784aa840-9e91-4515-95d6-283ab8a60a80", "created_at": "2025-05-19T19:09:50.779243+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/784aa840-9e91-4515-95d6-283ab8a60a80", "rel": "self"}, {"href": "http://localhost/volume/targets/784aa840-9e91-4515-95d6-283ab8a60a80", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "960542dc-7775-4bcf-8b47-976da37f1871", "created_at": "2025-05-19T19:09:50.779936+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/960542dc-7775-4bcf-8b47-976da37f1871", "rel": "self"}, {"href": "http://localhost/volume/targets/960542dc-7775-4bcf-8b47-976da37f1871", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d08ba820-365d-4bc2-8e84-67f2eda2a440", "created_at": "2025-05-19T19:09:50.781087+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d08ba820-365d-4bc2-8e84-67f2eda2a440", "rel": "self"}, {"href": "http://localhost/volume/targets/d08ba820-365d-4bc2-8e84-67f2eda2a440", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=d08ba820-365d-4bc2-8e84-67f2eda2a440"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.164990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a064c78-100c-4332-bc6c-57d2fae6d6ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.040926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b51e376-0812-47d6-b8db-d8874ca69376 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.832526+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.028812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c9dcf930-83e8-4838-bb29-5680a1730ced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.101861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-edba3e26-af9c-48e5-a72d-74d80bed900c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.039844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=boot_index,extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8329d9b9-c52a-4dea-8016-eaee6dff851c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.148832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-574b4e2a-05ff-4e65-93e3-16d82a055a84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.041853s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True&node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-471ccde6-e480-4f43-84e7-2b2bf1f2b434 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:50.944720+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.036512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4123db35-f16c-48de-a326-9f74140f6909 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.142612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ffb0178-36f7-40c6-831d-aaf3836d85d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "66748fb5-85e2-49dd-bff6-f37ccd0eb6f2", "extra": {}, "links": [{"href": "http://localhost/v1/ports/66748fb5-85e2-49dd-bff6-f37ccd0eb6f2", "rel": "self"}, {"href": "http://localhost/ports/66748fb5-85e2-49dd-bff6-f37ccd0eb6f2", "rel": "bookmark"}]}, {"uuid": "a12de8b6-23b6-42fa-aa46-282dea284e42", "extra": {}, "links": [{"href": "http://localhost/v1/ports/a12de8b6-23b6-42fa-aa46-282dea284e42", "rel": "self"}, {"href": "http://localhost/ports/a12de8b6-23b6-42fa-aa46-282dea284e42", "rel": "bookmark"}]}, {"uuid": "fb96b65b-0a80-4b01-b9b9-4c4a239d2798", "extra": {}, "links": [{"href": "http://localhost/v1/ports/fb96b65b-0a80-4b01-b9b9-4c4a239d2798", "rel": "self"}, {"href": "http://localhost/ports/fb96b65b-0a80-4b01-b9b9-4c4a239d2798", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.035561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.215289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1fe40666-71d1-44cd-b5e1-0139461c16b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.030055s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae13dd67-fceb-457f-a23c-edb325063141 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.139461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ca859852-24f0-49da-8719-64ee5205f8ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.029738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5439fd15-e2ab-42b4-a9de-3a05fcabb2da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.105629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f67fbefd-b763-4de4-8a65-d0b8ef883fc1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d8012d26-0f33-4a20-b1a1-cdde927acb37", "rel": "self"}, {"href": "http://localhost/ports/d8012d26-0f33-4a20-b1a1-cdde927acb37", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/efc25467-d2a7-4a3e-908c-1265f4e468c9", "rel": "self"}, {"href": "http://localhost/ports/efc25467-d2a7-4a3e-908c-1265f4e468c9", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=efc25467-d2a7-4a3e-908c-1265f4e468c9"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.051884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b983512-6294-454d-87e7-3bd35573719a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "c2a1dc90-bde7-46ab-94ae-22366bd85102", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c2a1dc90-bde7-46ab-94ae-22366bd85102", "rel": "self"}, {"href": "http://localhost/volume/targets/c2a1dc90-bde7-46ab-94ae-22366bd85102", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "653ea95b-1103-4fd1-ab3a-9124c568e730", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/653ea95b-1103-4fd1-ab3a-9124c568e730", "rel": "self"}, {"href": "http://localhost/volume/targets/653ea95b-1103-4fd1-ab3a-9124c568e730", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "35ab44ac-9482-40bf-84f6-de5e9fb858b6", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/35ab44ac-9482-40bf-84f6-de5e9fb858b6", "rel": "self"}, {"href": "http://localhost/volume/targets/35ab44ac-9482-40bf-84f6-de5e9fb858b6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.147629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-20a117f8-15c6-4c6e-b143-6f4f5927d1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.113755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6a03e42a-2f91-4784-90ca-fd1c269d0188 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.052618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c91c46ae-6d37-4f03-955e-79545a13dbf8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "40534754-8269-4806-a983-e5b87a086892", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/40534754-8269-4806-a983-e5b87a086892", "rel": "self"}, {"href": "http://localhost/volume/targets/40534754-8269-4806-a983-e5b87a086892", "rel": "bookmark"}]}, {"uuid": "b1106453-e451-49a4-a44b-43167e957dfa", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/b1106453-e451-49a4-a44b-43167e957dfa", "rel": "self"}, {"href": "http://localhost/volume/targets/b1106453-e451-49a4-a44b-43167e957dfa", "rel": "bookmark"}]}, {"uuid": "9b8fad34-c9ee-4d3a-b221-f118a2d21114", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/9b8fad34-c9ee-4d3a-b221-f118a2d21114", "rel": "self"}, {"href": "http://localhost/volume/targets/9b8fad34-c9ee-4d3a-b221-f118a2d21114", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.086868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e972afd4-ea7f-4aef-a582-ded6d7e09840 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.044433s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=boot_index&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f198a8e2-30e7-45fb-b012-6094af1842a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"boot_index": 0, "links": [{"href": "http://localhost/v1/volume/targets/587b3b57-552f-4385-a057-b69f246de3ee", "rel": "self"}, {"href": "http://localhost/volume/targets/587b3b57-552f-4385-a057-b69f246de3ee", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/388c6490-9d4b-4f84-aaa5-22a2c5b8dc1a", "rel": "self"}, {"href": "http://localhost/volume/targets/388c6490-9d4b-4f84-aaa5-22a2c5b8dc1a", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=388c6490-9d4b-4f84-aaa5-22a2c5b8dc1a"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.078071s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-daa1199a-3603-4b27-addf-6c2381ae85f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "407ddb5b-7390-44bf-a575-4e801ea94051", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.087657s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1902b62c-6cde-4c95-87c4-c2fbac23e8a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.045119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-562bbb69-b4f7-43e1-a171-316370f4e76d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.038324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4e6d304-1b89-43ab-b778-540f309f7763 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:51.337790+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.174586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d1620089-412c-4b43-b3b4-2127a9db4315 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.095670s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f4ce4da-afdf-4c34-8979-a9177501f806 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "1e9ce60a-8cff-432d-9d61-f86abb84d520", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.037416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=boot_index,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b179fed5-2d90-4eea-ba76-3faacee91f0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"boot_index": 0, "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.025345s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.125984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a6a801bf-f65f-4c5e-a461-f2b0ddee28c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-870c4c07-8b8c-49b0-82a4-54527358f73c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.53 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "is_smartnic": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.074124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-602a22c8-0769-45a0-a166-f69e3eacb723 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "500d6945-bbbf-4f29-86cb-f0666ea90ed7", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.072689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb589737-f4ba-45cd-ac3e-3bb3493f8dcf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d51dc97a-be4f-4e76-965f-7c7e124dae01", "created_at": "2025-05-19T19:09:51.457258+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01", "rel": "self"}, {"href": "http://localhost/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac13d77c-7dab-4278-9c62-9d5793d75dd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d51dc97a-be4f-4e76-965f-7c7e124dae01", "created_at": "2025-05-19T19:09:51.457258+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01", "rel": "self"}, {"href": "http://localhost/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a66268c-3370-4be9-9815-0e97783affa1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d51dc97a-be4f-4e76-965f-7c7e124dae01", "created_at": "2025-05-19T19:09:51.457258+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01", "rel": "self"}, {"href": "http://localhost/volume/targets/d51dc97a-be4f-4e76-965f-7c7e124dae01", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.145003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3ffd3462-0460-4caf-b997-efff0ec5f218 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.084184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96103ac9-4605-4b77-97b8-ea6f087469cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "6d605fa9-3101-4b83-b0b4-242428a2d5a8", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.069263s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ecf7016a-531c-446e-a6a4-ff33a39d8e74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "651dc35e-032a-4bde-81f5-fb89df4c1c5f", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.060089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c47de2f-b6c6-4759-815a-806a1fc8dd3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "c855bb68-3731-43bc-82b1-e941d2810a8a", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.152413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aa77b42d-37ca-4085-8606-15134a99b703 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.073512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bdbcce3-e69b-4452-9417-3eae43bd5113 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "48046185-c87d-44b7-bc3e-c83c66a4247e", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.271722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2b3d81f-5da7-4637-8d61-1a4aeaf08635 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "49adb300-f255-4274-854b-f2ef1520378f", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/49adb300-f255-4274-854b-f2ef1520378f", "rel": "self"}, {"href": "http://localhost/volume/targets/49adb300-f255-4274-854b-f2ef1520378f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d50fc643-94dc-4bf1-b146-73f45ed59e15", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d50fc643-94dc-4bf1-b146-73f45ed59e15", "rel": "self"}, {"href": "http://localhost/volume/targets/d50fc643-94dc-4bf1-b146-73f45ed59e15", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "2a4951a4-e7f0-4ce4-97c2-68ca5627feda", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2a4951a4-e7f0-4ce4-97c2-68ca5627feda", "rel": "self"}, {"href": "http://localhost/volume/targets/2a4951a4-e7f0-4ce4-97c2-68ca5627feda", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "62fd2944-3261-44c7-b86b-c711a0b67931", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/62fd2944-3261-44c7-b86b-c711a0b67931", "rel": "self"}, {"href": "http://localhost/volume/targets/62fd2944-3261-44c7-b86b-c711a0b67931", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3875e8a3-e6a7-48d7-b77f-916f4c1f53a5", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3875e8a3-e6a7-48d7-b77f-916f4c1f53a5", "rel": "self"}, {"href": "http://localhost/volume/targets/3875e8a3-e6a7-48d7-b77f-916f4c1f53a5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.039352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d05601b3-5532-4a93-86aa-d51540b16ea5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.081394s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1325d225-3ee1-4283-9dd5-84a62206faf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "464889c8-f661-4e7d-9a10-7ca423127356", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.172823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4c614878-f7db-4e5e-bdca-8a1aaeae8c6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.039260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.041518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6aebd173-d2bd-4e86-9d76-9769d69c6d54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1c20962e-2391-436a-b3ec-5dbf41771b24", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1c20962e-2391-436a-b3ec-5dbf41771b24", "rel": "self"}, {"href": "http://localhost/volume/targets/1c20962e-2391-436a-b3ec-5dbf41771b24", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "35bc52b9-1064-4517-9060-ba38ce1efcce", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/35bc52b9-1064-4517-9060-ba38ce1efcce", "rel": "self"}, {"href": "http://localhost/volume/targets/35bc52b9-1064-4517-9060-ba38ce1efcce", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6bf8dfc4-ed62-4640-8fe2-f557d1b356c5", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6bf8dfc4-ed62-4640-8fe2-f557d1b356c5", "rel": "self"}, {"href": "http://localhost/volume/targets/6bf8dfc4-ed62-4640-8fe2-f557d1b356c5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.468822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d6128904-c194-4670-af80-40a9e8bc9c5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20497ef3-60f0-4f84-bca3-c584730179d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.100578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d9dd20c-4d33-40d7-8313-950ebc51b9e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.044155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d6ef56d5-be82-45e1-8481-0ba35c057d5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.074872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e69a789-b6cf-43df-a05e-f4ca41ac7b35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/volume/targets?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-14aca70a-753f-45d2-85f5-6e031f339e00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/volume/targets?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d1a15f55-db6b-4289-9a79-72c909a7c54c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.039361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b7b5870-ae2e-4882-962f-15d4b1d3c36d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:51.977998+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin [0.139690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9ff0c413-ad0c-4975-bbd0-e5866b98f75e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.073133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24ac6942-94ad-47a2-9a45-0b1beaa0caa1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-19T19:09:51.955475+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.053957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-57a4943a-eebb-4554-972b-3c9eed543200 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-646ab435-d5e1-494f-8f63-e70526b2ca72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.053517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=address,extra,description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96edabd5-6771-45af-88dd-93ee573a4ef3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"address": "52:54:00:cf:2d:31", "extra": {}, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.066508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/357c7fa3-7808-458d-bb31-20a90656b302 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b886c3dd-e5e6-4448-876b-dfd8109bbb33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 357c7fa3-7808-458d-bb31-20a90656b302 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.126266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5fcc694d-53c1-4885-9fa6-623af3447825 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.095045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-4d310993-03b3-43f0-a8e2-b658031d8c91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.089865+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": 123}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6faeab2-bf84-49e6-8abc-01ea359fb06f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.089865+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": 123}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.099166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-effac647-8015-4219-8923-f6e555a9f986 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.118877+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.076991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95dcf47f-7c9a-4a2a-80e9-0efbd5bff0cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-19T19:09:52.111596+00:00", "updated_at": "2025-05-19T19:09:52.117594+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"content": "** Redacted - requires baremetal:node:get:driver_info permission. **"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "04974124-1fcf-40d7-b056-2b367418e373", "last_error": "** Value Redacted - Requires baremetal:node:get:last_error permission. **", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "** Redacted - requires baremetal:node:get:reservation permission. **", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "04974124-1fcf-40d7-b056-2b367418e373", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.054098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fcd59325-f18b-426d-b8f1-b64c12176fa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.075271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/4fe58323-e2f0-47b3-8d60-81febb5d86c2 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-56dcdf4b-164f-4d0d-b974-fc1b8672d3fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 4fe58323-e2f0-47b3-8d60-81febb5d86c2 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.133064s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-65ba5359-0698-4ea7-9a77-50e79bb554d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_ports_by_description [0.117020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98c09adf-40af-48c6-b912-71567db72631 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ce9b9b78-6f37-494a-9631-fa316387bcea", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/ce9b9b78-6f37-494a-9631-fa316387bcea", "rel": "self"}, {"href": "http://localhost/ports/ce9b9b78-6f37-494a-9631-fa316387bcea", "rel": "bookmark"}]}]} GET /v1/ports?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43f5eabc-08fc-4bfd-9bcd-accccd8a4abc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "7da57a8f-292d-40cc-bbcb-c2d76e3ee58d", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/7da57a8f-292d-40cc-bbcb-c2d76e3ee58d", "rel": "self"}, {"href": "http://localhost/ports/7da57a8f-292d-40cc-bbcb-c2d76e3ee58d", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.087146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2 Openstack-Request-Id: req-161fb331-a5cc-4b3f-8840-59fe432d2fc8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2", "created_at": "2025-05-19T19:09:52.265347+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2", "rel": "self"}, {"href": "http://localhost/volume/targets/67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5bfc4b1-fd47-4291-aee6-212f7acd3d36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2", "created_at": "2025-05-19T19:09:52.265347+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2", "rel": "self"}, {"href": "http://localhost/volume/targets/67ff5746-7fdf-4ef0-ab9a-61b5396ed8d2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_third_party_admin_cant_get_node [0.079984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d8bf838e-161f-4645-b824-9576f70a393f WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-152e9270-e886-40f7-b0bb-5c55edead151 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d8bf838e-161f-4645-b824-9576f70a393f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.032851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.060557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd4376aa-01be-4e9b-b9f2-9079c2df5c37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.291716+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7096b177-1af3-44bf-a847-adab3df9eb6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.291716+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.035468s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': 123} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d532003-fcf8-4041-ac35-b85d2325bb99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.051619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-481a5ad2-d760-4958-8464-9001c3b1e790 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.351977+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aec79255-ab65-4763-b972-c5821ce75d88 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.351977+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.131970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-12d7f582-7b6b-4c7c-9523-b476af971831 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.108847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-568303e0-4e3c-4bbc-aba6-fd228ee2658c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-19T19:09:52.360579+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.082920s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-22301dc0-ef24-46c4-90dd-8daf6dfdb426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.087774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aaf91cf5-c4a6-4aa8-92ad-ba6e895b1b69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.427980+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33eb7a51-9464-41f9-8457-ed8ccc64e17d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.53 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.427980+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.067636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-616e2788-2193-4c99-977c-d2f007804f71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.096191s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-abd0b071-2684-43e5-afe1-17c510a450b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-19T19:09:52.464516+00:00", "updated_at": "2025-05-19T19:09:52.471009+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"content": "** Redacted - requires baremetal:node:get:driver_info permission. **"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "81dfe4dc-3f2a-4312-8644-9cb34ff8c005", "last_error": "** Value Redacted - Requires baremetal:node:get:last_error permission. **", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "** Redacted - requires baremetal:node:get:reservation permission. **", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "81dfe4dc-3f2a-4312-8644-9cb34ff8c005", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member [0.136594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-01dde374-6b74-4121-85f1-af35cf567eb0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.066098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-948e976e-7ead-4194-97f4-2e4b4880d425 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.136003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4df25ec-d200-4b6a-a6aa-922c580c5145 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.525595+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bc7526b-eae5-44b8-982c-7e6fbab15fea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.89 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.525595+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-703efa1b-b214-4aa5-8746-33945f653c2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.525595+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"port_id": "42", "vtep-logical-switch": "lswitch", "vtep-physical-switch": "jswitch"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.076089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8122e005-88d6-43d8-bf82-72c9fe505492 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.151542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b43f1f4-e5a9-4138-9568-5912cdd94be8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.154378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-647d6681-3f5e-4988-894f-c7a84d3acb2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-19T19:09:52.582552+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-19T19:09:52.598001+00:00", "updated_at": "2025-05-19T19:09:52.612597+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "3b3db648-f3f5-420b-8505-f3f0c13ad5b4", "last_error": "meow", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_ interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "3b3db648-f3f5-420b-8505-f3f0c13ad5b4", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.148960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f63710d0-78ac-4b3f-ac85-4b6be54b67f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.686178+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bc8425e-3988-4468-9227-4a642c725c8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.686178+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.109524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5025bfd4-4236-4de8-989e-4381cf38cf9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.735371+00:00", "updated_at": null, "boot_index": 0, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8986f7f-a014-455f-acf6-16baa920f6a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.735371+00:00", "updated_at": null, "boot_index": 0, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.136270s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3ef5ee6c-bfa4-4a93-9b45-8f680c20d541 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.099101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80b3d8cd-875c-4192-8b73-de3a1ca4b124 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.814760+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.126403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-12da701a-7855-471d-8fb5-cf753fe7ba86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.868559+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.092731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ec913e1a-8abf-4f2f-89f0-d1e546b3dac3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.115652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08043e84-70b6-467d-acb9-15fb8fd3ead3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.896864+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f31d88e-9522-4e66-ba07-5a64bc2369f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:09:52.896864+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.131505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a6011d94-6469-4940-aeaa-e4d6bd4b5eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.075731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/fdb85944-4b60-4069-b309-05fc080ca101 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc4deb0f-a483-4398-a2cb-35a198eee656 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fdb85944-4b60-4069-b309-05fc080ca101", "created_at": "2025-05-19T19:09:53.007743+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/fdb85944-4b60-4069-b309-05fc080ca101", "rel": "self"}, {"href": "http://localhost/ports/fdb85944-4b60-4069-b309-05fc080ca101", "rel": "bookmark"}]} GET /v1/ports/fdb85944-4b60-4069-b309-05fc080ca101 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90e0eec9-cb5a-4df5-8c42-2047262a8c7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fdb85944-4b60-4069-b309-05fc080ca101", "created_at": "2025-05-19T19:09:53.007743+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/fdb85944-4b60-4069-b309-05fc080ca101", "rel": "self"}, {"href": "http://localhost/ports/fdb85944-4b60-4069-b309-05fc080ca101", "rel": "bookmark"}]} GET /ports/fdb85944-4b60-4069-b309-05fc080ca101 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2320896-1dca-4f9a-83d3-8799516d3a7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fdb85944-4b60-4069-b309-05fc080ca101", "created_at": "2025-05-19T19:09:53.007743+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/fdb85944-4b60-4069-b309-05fc080ca101", "rel": "self"}, {"href": "http://localhost/ports/fdb85944-4b60-4069-b309-05fc080ca101", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.108587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/37a31f2f-9617-41f2-874b-d0df125f60f2 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7f9f914a-7556-4a99-98a4-73b80c98a4e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 37a31f2f-9617-41f2-874b-d0df125f60f2 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.089996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9dc10794-55da-411e-bcc8-2db7e58a43ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.115608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d49fd89-08c2-4e16-8ba2-d7c153e97529 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "created_at": "2025-05-19T19:09:53.086216+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://foo/v1/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "rel": "self"}, {"href": "http://foo/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "rel": "bookmark"}]} GET /v1/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5d62c7f-0a3a-4cf7-910d-16a36fbc4311 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "created_at": "2025-05-19T19:09:53.086216+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://foo/v1/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "rel": "self"}, {"href": "http://foo/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "rel": "bookmark"}]} GET /ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3209e6b-0b29-4987-8aee-0f8f6e4dcfa3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "created_at": "2025-05-19T19:09:53.086216+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://foo/v1/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "rel": "self"}, {"href": "http://foo/ports/98e3f8f9-6dd2-4aeb-b479-c6137a75c536", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.075854s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/2b33878c-f877-460e-a1ef-6541917cb8ba WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2cf0fe92-ba85-4c37-b97a-011a5d03ba56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 2b33878c-f877-460e-a1ef-6541917cb8ba could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden [0.054983s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3c94fc7f-1d58-4add-83d4-87aca421b063 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.129361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3732c717-ff4f-4b47-bb11-c4ad2cb5a0d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project [0.052690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-63011fe1-fd87-4592-8ac8-c4a31cc84381 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.086733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/236a80e5-5bd3-435b-8681-f9fe9db0c50a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-33d6218e-2275-41f2-9c2f-2b1dfc1fb5e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 236a80e5-5bd3-435b-8681-f9fe9db0c50a could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.608223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c37ab48c-ab0c-4227-9798-d30d917fbaf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-19T19:09:53.204671+00:00", "updated_at": "2025-05-19T19:09:53.221296+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"content": "** Redacted - requires baremetal:node:get:driver_info permission. **"}, "driver_internal_info": {"content": "** Redacted - Requires baremetal:node:get:driver_internal_info permission. **"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "174c7dff-bbe6-4da8-b289-5761b37c10d2", "last_error": "** Value Redacted - Requires baremetal:node:get:last_error permission. **", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "** Redacted - requires baremetal:node:get:reservation permission. **", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "174c7dff-bbe6-4da8-b289-5761b37c10d2", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.065993s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5906bd8d-442e-410c-a78a-56cfef6b732e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "e8f30665-77dc-4bf9-97f4-b2cda4f188d4", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/e8f30665-77dc-4bf9-97f4-b2cda4f188d4", "rel": "self"}, {"href": "http://localhost/ports/e8f30665-77dc-4bf9-97f4-b2cda4f188d4", "rel": "bookmark"}]}, {"uuid": "4092d4bf-7d0f-44c7-8adb-1a32066f56fd", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/4092d4bf-7d0f-44c7-8adb-1a32066f56fd", "rel": "self"}, {"href": "http://localhost/ports/4092d4bf-7d0f-44c7-8adb-1a32066f56fd", "rel": "bookmark"}]}, {"uuid": "4a90000b-8c30-49c6-8ec3-281a00b472b5", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/4a90000b-8c30-49c6-8ec3-281a00b472b5", "rel": "self"}, {"href": "http://localhost/ports/4a90000b-8c30-49c6-8ec3-281a00b472b5", "rel": "bookmark"}]}, {"uuid": "3e5d371e-43d0-4775-85ff-a71324bb1880", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/3e5d371e-43d0-4775-85ff-a71324bb1880", "rel": "self"}, {"href": "http://localhost/ports/3e5d371e-43d0-4775-85ff-a71324bb1880", "rel": "bookmark"}]}, {"uuid": "42cb77c1-aad6-490b-a37f-58f361c4ffb9", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/42cb77c1-aad6-490b-a37f-58f361c4ffb9", "rel": "self"}, {"href": "http://localhost/ports/42cb77c1-aad6-490b-a37f-58f361c4ffb9", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api [0.060507s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-511e9942-84b6-45c7-ac9a-6641196c9ea5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.096066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1371009b-e88e-4a9c-8f13-2b6e6ba0b20e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin [0.076678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d8cd00a-77f7-4c09-9c15-28feaccb2c58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "1e6b4c4b-36d6-4a47-aef7-6064cbd38a03", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/1e6b4c4b-36d6-4a47-aef7-6064cbd38a03", "rel": "self"}, {"href": "http://localhost/ports/1e6b4c4b-36d6-4a47-aef7-6064cbd38a03", "rel": "bookmark"}]}, {"uuid": "1f47cfb2-a67a-4d56-89f7-61cdf8483124", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1f47cfb2-a67a-4d56-89f7-61cdf8483124", "rel": "self"}, {"href": "http://localhost/ports/1f47cfb2-a67a-4d56-89f7-61cdf8483124", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.125250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bad2a3a5-1301-455b-921c-bff87fdb26ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.077237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad236707-c389-4942-a8b6-e4e83a5f73fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.076440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b0da6935-fdb3-43de-8d48-3ebf134b8c55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.046179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2557bb4c-27d9-4ae3-8c11-860322f41dcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.067222s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2f99439-f17e-450b-a806-da06236091b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.059372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=aa:bb:cc:dd:ee:f1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07ec261d-a937-45e0-b575-9122ec8724a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "02d4cdcc-adfe-4a14-85a7-caf01e58d0f0", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/02d4cdcc-adfe-4a14-85a7-caf01e58d0f0", "rel": "self"}, {"href": "http://localhost/ports/02d4cdcc-adfe-4a14-85a7-caf01e58d0f0", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.098562s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2c1b1cce-9f20-4683-8528-54126677977e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.070058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.json WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.061926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33c0bf55-91a4-4df0-a60c-1bbc86220e00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.068649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9afb97b5-0f52-48b5-bc23-f1a223acbeaf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml [0.053763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.xml WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_admin_can_patch_node_extra [0.203690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-14ba8269-f5db-4da6-8c88-6cc9b4d28971 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin [0.063770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=aa:bb:cc:dd:ee:f1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62f5bdbb-0bd9-43e4-9e10-3dff13912aca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "db23fe60-3d2b-4f29-84ea-2821b4be57d1", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/db23fe60-3d2b-4f29-84ea-2821b4be57d1", "rel": "self"}, {"href": "http://localhost/ports/db23fe60-3d2b-4f29-84ea-2821b4be57d1", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.042298s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.081009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-637b5d5d-9678-422f-a89a-57428f0fe285 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match [0.045659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=aa:bb:cc:dd:ee:f1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5bc02fb-8f47-4a60-b2b7-b2c80fc7c505 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.032367s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.046351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=aa:bb:cc:dd:ee:ff WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1253b280-0a8b-4db1-bdb1-878ffab4e6dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature [0.048175s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.082913s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0034552-470b-4d61-9b19-f26a8679e932 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.046930s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/123 123/ports WITH {} GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 123 123\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.041265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.083044s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.075426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ba63a85d-182b-4c44-81dc-4bfcab869587 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.216992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-066666c3-2475-423e-9347-7b00767e1769 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.055227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc82701a-4975-4ca2-a288-0b41874ab57a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "82bef231-fa02-466e-95b5-6f2ed1bb6013", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/82bef231-fa02-466e-95b5-6f2ed1bb6013", "rel": "self"}, {"href": "http://localhost/ports/82bef231-fa02-466e-95b5-6f2ed1bb6013", "rel": "bookmark"}]}, {"uuid": "b01e2bca-37da-491c-83e8-4f4d1dedda04", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/b01e2bca-37da-491c-83e8-4f4d1dedda04", "rel": "self"}, {"href": "http://localhost/ports/b01e2bca-37da-491c-83e8-4f4d1dedda04", "rel": "bookmark"}]}, {"uuid": "d3f13dd4-2cbd-48d3-a4d7-54738b97ff5c", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d3f13dd4-2cbd-48d3-a4d7-54738b97ff5c", "rel": "self"}, {"href": "http://localhost/ports/d3f13dd4-2cbd-48d3-a4d7-54738b97ff5c", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.068428s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.026167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bc83e5d5-d238-4458-999c-71790a026d2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin [0.088736s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b655dd4-1828-4540-90db-283a9e23aefa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.057877s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a329635e-65a6-4bfb-8c24-a05fbe3eda3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "da2e1327-1869-440c-8669-069c5d8e2218", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/da2e1327-1869-440c-8669-069c5d8e2218", "rel": "self"}, {"href": "http://localhost/ports/da2e1327-1869-440c-8669-069c5d8e2218", "rel": "bookmark"}]}, {"uuid": "c6a49749-b203-44e9-8c18-423a2d045c25", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c6a49749-b203-44e9-8c18-423a2d045c25", "rel": "self"}, {"href": "http://localhost/ports/c6a49749-b203-44e9-8c18-423a2d045c25", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.049896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e979ad80-322e-43f8-be13-42f71015d06f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid [0.040810s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-758637c9-e05d-4014-b367-0326a923fad0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/ports?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-94e234c0-f49d-434a-a877-00959c556d8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/ports?sort_key=internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a54135e6-d181-4898-b553-73acc6d00164 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/ports?sort_key=local_link_connection WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7257aeaa-a74f-47df-9855-b9fb5516b010 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member [0.066181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-682fc705-3363-4e48-ae57-254cafbc80f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.040917s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-73d4a652-4463-41c0-9396-cc542656eced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.029168s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a8fa8769-c808-48d8-ad7a-3153d69bc420 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_owner_member_can_patch_node_extra [0.188309s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d938d183-3b08-4938-9e20-cd1165099d82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.033957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-72da79b3-b23d-48c3-8495-b227d249a572 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.044357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/52:54:00:cf:2d:31 GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.054369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9ea1fe5e-0c43-420b-9175-86c1ea77e017 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.088769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content Openstack-Request-Id: req-53753cf1-9311-4c81-8d24-4b069b2eb196 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.050883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9693d382-ddbe-4b75-b523-a37dccc2f05d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.144799s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-070e88fb-98eb-4f61-935c-65d9aed78c6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer [0.183149s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4493ddf1-3555-48b6-b598-afe7ead91abf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.069361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bf9a70fe-3d49-444f-9b40-c5ecc52ddab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev109/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev109/ironic/api/controllers/root.py\\\", line 44, in index\\n return root()\\n ^^^^^^\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib64/python3.12/unittest/mock.py\\\", line 1139, in __call__\\n return self._mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib64/python3.12/unittest/mock.py\\\", line 1143, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib64/python3.12/unittest/mock.py\\\", line 1198, in _execute_mock_call\\n raise effect\\n\\nException: Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\\n\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.114980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content Openstack-Request-Id: req-89696c76-6866-4c70-8300-b5ea88cd0084 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.079032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-49576353-4b83-47e2-8545-22eb59bef1ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.088041s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1e1cde5a-05d5-404b-890a-148764381e4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.081512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5d535d51-11b4-4706-984a-301a9ce714d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.094866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content Openstack-Request-Id: req-40a4a55e-5031-4015-809c-6c6394f22521 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_admin_can_patch_node_extra [0.292284s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5d4038f8-6673-49bc-aaf9-f9198248321b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.072062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-314a5f9d-bbc0-4a96-afd3-3e5ab8d0788e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.069275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6be4b370-ae45-4ab1-81c3-777d06b0de08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev109/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev109/ironic/api/controllers/root.py\\\", line 44, in index\\n return root()\\n ^^^^^^\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib64/python3.12/unittest/mock.py\\\", line 1139, in __call__\\n return self._mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib64/python3.12/unittest/mock.py\\\", line 1143, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib64/python3.12/unittest/mock.py\\\", line 1198, in _execute_mock_call\\n raise effect\\n\\nException: Error message without traceback \\n but \\n multiline\\n\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.128446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.091988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f306ec81-251e-491b-b5b1-d968a11d3eba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.512567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c8ee5726-545f-4065-a148-2376ee989158 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.119391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-9109fd03-47f1-4434-8fe3-3c787b393540 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.078722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bde757a9-8e37-4c85-97ec-cfff346d7260 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.064834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-a010aba5-d9e7-4584-97c2-30c4c52017b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7e82198a-bd6a-48cf-9fbc-111ef99227fb"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.318442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9cd60481-d2fe-4da0-ad72-f61a73b37757 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.137511s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.128434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-a595b5a1-fd52-443d-88fe-3967b24ebdaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5bec3983-b297-4ff1-8fbe-d8dee2de4248"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_lessee_member_can_patch_node_extra [0.113802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-49bc2bfe-e9a8-48e7-af9a-c847c65aa0d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member [0.207502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6c311e9d-b3d8-4506-870f-2978d3ec0b66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.063637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/continue_inspection WITH {'inventory': {'bmc_address': '192.0.2.42', 'interfaces': [{'mac_address': '11:22:33:44:55:66', 'name': 'em0'}, {'mac_address': '66:55:44:33:22:11', 'name': 'em1'}]}, 'test': 42} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5e88b7c9-3e3a-464d-8f2f-d44d62465f58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"An unknown exception occurred.\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.103259s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_lessee_reader_cannot_patch_node_extra [0.067856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-287947ce-04f0-43c8-ab60-19899de3a65c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.086403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f081bb7c-e25a-43c7-a6df-74b335ea8e48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.037687s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.070669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_status': 'invalid_state', 'agent_status_message': 'woof', 'agent_verify_ca': 'abcdef1'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e9bd81cc-3b11-479b-9016-71af1e1be16e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.034251s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.063534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ecfc166f-2bf0-41df-8ae6-1b729c941fff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.036356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url2'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a8fab88e-262d-4fd6-91b7-5c63f12ada69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.055335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_file_url [0.049473s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'file:///path/to/the/wizzard'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cd88ce81-a965-4535-a9cb-a24cebfaeded X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.023577s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.034612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/e0dc2536-264b-4754-bd19-779c602f1408 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-423ee2c3-9adc-4acc-8ea3-906768c33873 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e0dc2536-264b-4754-bd19-779c602f1408 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.028882s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.111614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/driver', 'value': 'fake-hardware'}, {'op': 'replace', 'path': '/power_interface', 'value': 'fake'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-46b6bb82-454e-4a47-92f9-db8d491b816a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.210147s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b2626186-7bc3-42ff-bfd0-bff76c59de14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.094928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'x'} GOT Response: 202 Accepted Openstack-Request-Id: req-7d32c8d4-5587-4bc1-825b-b40afb872ec9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.156259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/driver', 'value': 'fake-hardware'}, {'op': 'replace', 'path': '/power_interface', 'value': 'fake'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-163feca7-51c1-41ee-8cf3-1f822e909925 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.078923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_status': 'start', 'agent_status_message': 'woof', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted Openstack-Request-Id: req-fa7f772e-e535-4a7b-b3e4-0e6ba0c872d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.059737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'http://url', 'agent_token': 'abcdef1'} GOT Response: 202 Accepted Openstack-Request-Id: req-bd8ce843-950b-460d-888d-e3df2755d5cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.281806s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.052064s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted Openstack-Request-Id: req-ef20306c-f258-4075-a363-bd9fba68283b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.209541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1bc4e7fd-23cd-4eff-9ff3-6892dbe29002 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.019312s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.164455s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}, {'op': 'replace', 'path': '/driver_info', 'value': {'test': 'testing'}}, {'op': 'replace', 'path': '/properties', 'value': {'test': 'testing'}}, {'op': 'replace', 'path': '/network_data', 'value': {'links': [], 'networks': [], 'services': []}}, {'op': 'replace', 'path': '/name', 'value': 'meow-node-1'}, {'op': 'replace', 'path': '/retired', 'value': True}, {'op': 'replace', 'path': '/retired_reason', 'value': '43'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a4f935ce-4b60-4ed5-8fea-b454baaa70da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.063361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_version': '1.4.1', 'agent_token': 'meow'} GOT Response: 202 Accepted Openstack-Request-Id: req-62e47830-deaa-4a40-9ca8-c86d1e410f5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.105525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d5b7a8b3-b6f7-47d1-91df-f77ca0eef008 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.053166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-b502c38e-a4cf-47f4-8278-3e25f7b506e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.111189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/lessee', 'value': '198566a5-a609-4463-9800-e8920be7c2fa'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a735c738-619c-4b0e-a678-e9bb8ba60b01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_for_anaconda [0.076773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': '', 'agent_token': 'x'} GOT Response: 202 Accepted Openstack-Request-Id: req-bbb31b31-9e39-4722-ad7d-395f8ee3976e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.095201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b64e44af-fe61-4062-98b2-634e62d193f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.071101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f5690d5f-9c22-41ef-9e4c-4577604626ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions [0.259236s] ... ok {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.024200s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.115084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b1ec4742-75fe-427c-a458-2000030ba103 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and [0.025895s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean [0.027032s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.084702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2e32a072-2410-4cbf-90ff-09a58e41f10c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args [0.053822s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_lessee [0.229096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6b401791-579a-46b0-8a8b-70373fb23ffb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.047101s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.021454s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.018308s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.025989s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address [0.047194s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.025752s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_lessee_admin_cannot_change_owner [0.149887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa8f1c79-d1f2-4873-bde7-861cb5252637 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated [0.021778s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name [0.022877s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.455136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json WITH {'callback_url': 'https://url', 'agent_token': 'maybe some magic'} GOT Response: 202 Accepted Openstack-Request-Id: req-cb67e7ab-d1f4-41cb-b8e8-b79ff82f2cb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.253546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b83f0a21-1df3-469d-8546-cadb979624cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.021569s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string [0.027324s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.095232s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-841758f8-c058-415d-b0de-32e9702d8ce6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list [0.028013s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.079981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b15bee2f-1e2f-4b86-8599-6efa4775b1ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.67 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args [0.023750s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid [0.029694s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.067666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_version': '1.4.1'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c381d712-5f1a-4b3d-94af-aa05e2eae9ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member [0.157600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f4af2aaf-c5da-4512-97a5-a06873ecc02b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name [0.053876s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.141462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3a011576-5b23-4ab9-a6fb-5f9e2a7b4ea1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.021620s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.062581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'https://url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd', 'agent_status': 'wow', 'agent_status_message': 'much status'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1cca9208-7fd2-4d1a-8729-11af7c9711e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.71 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.032117s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.035414s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/3d7d8e21-6228-4428-b513-6c33533a1dd7 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f39787b-c360-4f49-808c-d111e9594275 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.026632s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer [0.098088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fd38323b-c090-425b-9609-72f363b14d78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.021030s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.022374s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links [0.070769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36003f36-16fd-45cb-a7e2-5db85b55fdad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "173c6077-e98e-4205-865c-9d5e28c171ef", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/173c6077-e98e-4205-865c-9d5e28c171ef", "rel": "self"}, {"href": "http://localhost/runbooks/173c6077-e98e-4205-865c-9d5e28c171ef", "rel": "bookmark"}]}, {"uuid": "9f0a580d-7c07-45ef-9304-38cc861f59d3", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/9f0a580d-7c07-45ef-9304-38cc861f59d3", "rel": "self"}, {"href": "http://localhost/runbooks/9f0a580d-7c07-45ef-9304-38cc861f59d3", "rel": "bookmark"}]}, {"uuid": "cba4abff-a23d-4f16-9f1d-baf21ab16988", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/cba4abff-a23d-4f16-9f1d-baf21ab16988", "rel": "self"}, {"href": "http://localhost/runbooks/cba4abff-a23d-4f16-9f1d-baf21ab16988", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=cba4abff-a23d-4f16-9f1d-baf21ab16988"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.125367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-509ca689-add4-4be2-a76f-da7d90477e80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.034904s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.088536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bdbf91f0-6171-4e46-90a2-c37d0f4b0426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.035174s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_custom_fields [0.070665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c475c4d-cad6-48b2-825a-f4d046031878 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "6fe7f7ec-fb7d-4922-b66e-167ac454a200", "links": [{"href": "http://localhost/v1/runbooks/6fe7f7ec-fb7d-4922-b66e-167ac454a200", "rel": "self"}, {"href": "http://localhost/runbooks/6fe7f7ec-fb7d-4922-b66e-167ac454a200", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "0a7ca394-f9a5-4d4b-89a7-575f5f8e3505", "links": [{"href": "http://localhost/v1/runbooks/0a7ca394-f9a5-4d4b-89a7-575f5f8e3505", "rel": "self"}, {"href": "http://localhost/runbooks/0a7ca394-f9a5-4d4b-89a7-575f5f8e3505", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "d98d2073-c033-4553-b428-528cc08637db", "links": [{"href": "http://localhost/v1/runbooks/d98d2073-c033-4553-b428-528cc08637db", "rel": "self"}, {"href": "http://localhost/runbooks/d98d2073-c033-4553-b428-528cc08637db", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,steps&limit=3&marker=d98d2073-c033-4553-b428-528cc08637db"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.028176s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.083362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0966db9d-7bf3-4f56-9da6-29ff7e08361e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.068486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-441d0f79-90fc-4b89-a8f4-be7dc3aad69e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.022996s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_default_limit [0.061037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47822a78-1e68-4d38-b571-25f4ca1fae4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "d5e809b1-8841-45b6-8789-bfd098546a24", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/d5e809b1-8841-45b6-8789-bfd098546a24", "rel": "self"}, {"href": "http://localhost/runbooks/d5e809b1-8841-45b6-8789-bfd098546a24", "rel": "bookmark"}]}, {"uuid": "66093947-af5d-4999-888b-532352c93e25", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/66093947-af5d-4999-888b-532352c93e25", "rel": "self"}, {"href": "http://localhost/runbooks/66093947-af5d-4999-888b-532352c93e25", "rel": "bookmark"}]}, {"uuid": "c9017398-ecbe-4351-8799-46a947ba7878", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/c9017398-ecbe-4351-8799-46a947ba7878", "rel": "self"}, {"href": "http://localhost/runbooks/c9017398-ecbe-4351-8799-46a947ba7878", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=c9017398-ecbe-4351-8799-46a947ba7878"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.047180s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query [0.052972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-444b3ba1-802e-4af1-8476-ce09490a98fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "1d9c42ec-d58d-4d8b-9350-404f09499a99", "created_at": "2025-05-19T19:09:56.596182+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1d9c42ec-d58d-4d8b-9350-404f09499a99", "rel": "self"}, {"href": "http://localhost/runbooks/1d9c42ec-d58d-4d8b-9350-404f09499a99", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.104256s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-030b58d1-e142-4a92-aa29-98c49a459ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.042499s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.091475s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-44ac817b-8ddb-44e1-bad6-bf2865e6c607 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query_false [0.048326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fdb48ec9-12dc-481e-8cdc-8d06d6d29e4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "876eb3e9-78db-48d7-8704-2081b55ffe4e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/876eb3e9-78db-48d7-8704-2081b55ffe4e", "rel": "self"}, {"href": "http://localhost/runbooks/876eb3e9-78db-48d7-8704-2081b55ffe4e", "rel": "bookmark"}]}]} GET /v1/runbooks?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62cc04be-82d3-4df5-9596-78871fc55e4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "876eb3e9-78db-48d7-8704-2081b55ffe4e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/876eb3e9-78db-48d7-8704-2081b55ffe4e", "rel": "self"}, {"href": "http://localhost/runbooks/876eb3e9-78db-48d7-8704-2081b55ffe4e", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.046257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin [0.096717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ddf00ab8-ef93-4bdd-a41c-81d0e91a3888 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.109133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/protected', 'value': True}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6517a063-7339-4076-9c46-b1cf234eab0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.056607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_sort_key_allowed [0.076436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ccd5954-779b-4cda-b260-9c634b3bf71d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "530b43cb-5358-4947-9804-0169e4f20018", "created_at": "2025-05-19T19:09:56.697161+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/530b43cb-5358-4947-9804-0169e4f20018", "rel": "self"}, {"href": "http://localhost/runbooks/530b43cb-5358-4947-9804-0169e4f20018", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "c19e7bed-70dd-4a9d-8c65-40f1a837677a", "created_at": "2025-05-19T19:09:56.695005+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c19e7bed-70dd-4a9d-8c65-40f1a837677a", "rel": "self"}, {"href": "http://localhost/runbooks/c19e7bed-70dd-4a9d-8c65-40f1a837677a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "cfa4daa4-edcc-4351-be3b-2946da40d810", "created_at": "2025-05-19T19:09:56.691861+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cfa4daa4-edcc-4351-be3b-2946da40d810", "rel": "self"}, {"href": "http://localhost/runbooks/cfa4daa4-edcc-4351-be3b-2946da40d810", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.031931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_and_fields [0.044142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b593848-b983-4fc8-935b-7d918ca3441d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.072516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e91edc26-9fc9-44b9-81ea-746197421d0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.038145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000093s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member [0.093269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-04e7484d-1bac-48ef-93fc-3c70c71cbb1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.018247s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.016062s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_false_and_fields [0.061077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4c06d91-487c-4b0d-8e8f-eac2439edeeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"links": [{"href": "http://localhost/v1/runbooks/d81ab254-3fae-49c6-b70f-d4d3fb385e64", "rel": "self"}, {"href": "http://localhost/runbooks/d81ab254-3fae-49c6-b70f-d4d3fb385e64", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.017200s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.017966s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.088217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/driver_info', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-767f28bf-c813-4bcd-b576-5ab6f2e8d18e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_empty [0.047281s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2241a7a-7ab8-4a9e-b309-a5ad45c578b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": []} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.026468s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_get_observer [0.084593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0d7d80a3-8824-4ef7-a9bc-3a1750e7a517 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_all_invalid_api_version [0.027966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow runbooks\"}"} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.026904s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.028469s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_custom_fields [0.045499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9177518f-0e96-4679-912c-3dbbef737345 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "d1522585-66e6-4cad-90d5-8c77f6329216", "links": [{"href": "http://localhost/v1/runbooks/d1522585-66e6-4cad-90d5-8c77f6329216", "rel": "self"}, {"href": "http://localhost/runbooks/d1522585-66e6-4cad-90d5-8c77f6329216", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "34b1c510-370b-49a7-8882-5ca21f29b468", "links": [{"href": "http://localhost/v1/runbooks/34b1c510-370b-49a7-8882-5ca21f29b468", "rel": "self"}, {"href": "http://localhost/runbooks/34b1c510-370b-49a7-8882-5ca21f29b468", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "167b44d6-556b-40fa-b98c-44f4db68cd0c", "links": [{"href": "http://localhost/v1/runbooks/167b44d6-556b-40fa-b98c-44f4db68cd0c", "rel": "self"}, {"href": "http://localhost/runbooks/167b44d6-556b-40fa-b98c-44f4db68cd0c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.082989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/properties', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-28faa0fd-cd33-4fd0-9a45-9d26e7723f35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.028253s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_admin [0.100022s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ab45a63b-715a-4008-b13f-6ef6cff8aafe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.032889s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_pagination_no_uuid [0.056649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-30f0f47d-8d7f-493c-be37-d3c16f6586c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/346335c9-0a18-4f0a-8807-4209b433b991", "rel": "self"}, {"href": "http://localhost/runbooks/346335c9-0a18-4f0a-8807-4209b433b991", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/41e0c00c-af2d-4540-ab0d-f58383979e4b", "rel": "self"}, {"href": "http://localhost/runbooks/41e0c00c-af2d-4540-ab0d-f58383979e4b", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=41e0c00c-af2d-4540-ab0d-f58383979e4b"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_custom_fields_invalid_fields [0.032834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/6e920595-c497-436c-8742-82d52c707935?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2a660ddd-3297-4ab5-98c5-e251818269e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.046280s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.091480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/network_data', 'value': {'links': [], 'networks': [], 'services': []}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eb3d08ad-a505-4896-bd8f-77b866036e05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one [0.029947s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/9bdc4106-827d-4076-8dfb-f56acc141b67 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00be06d8-5e7c-40e1-9714-589cb85bb283 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9bdc4106-827d-4076-8dfb-f56acc141b67", "created_at": "2025-05-19T19:09:57.081966+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9bdc4106-827d-4076-8dfb-f56acc141b67", "rel": "self"}, {"href": "http://localhost/runbooks/9bdc4106-827d-4076-8dfb-f56acc141b67", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.029532s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.034023s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.075000s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/name', 'value': 'meow-node-1'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e56d9fb3-3bfd-407c-8a0e-27d21ea3bd43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_custom_fields [0.059532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/b36af833-abce-4162-8df5-8731a6027e68?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e2bb82c-3b7b-4b79-bda8-d8303e51b3fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b36af833-abce-4162-8df5-8731a6027e68", "rel": "self"}, {"href": "http://localhost/runbooks/b36af833-abce-4162-8df5-8731a6027e68", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.032530s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_member [0.157045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-69922d48-8921-4330-ae1b-d40ac676e883 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_invalid_api_version [0.037528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/9929bbe1-fbbf-4596-84a2-f49741757fe7 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow runbooks\"}"} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.035556s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.017217s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_links [0.042586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e12fda49-c5f9-40db-ac47-08c8af85a4ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "created_at": "2025-05-19T19:09:57.214983+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "rel": "self"}, {"href": "http://localhost/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8dcd138-b4dd-4c6f-8a15-cdc7d2e1af4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "created_at": "2025-05-19T19:09:57.214983+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "rel": "self"}, {"href": "http://localhost/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a220f3de-f5fa-41ea-b11e-ac1a2651d2b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "created_at": "2025-05-19T19:09:57.214983+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "rel": "self"}, {"href": "http://localhost/runbooks/01b1e5f5-843c-4c8e-a15b-bd8001fdcac5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.090362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/retired', 'value': True}, {'op': 'replace', 'path': '/retired_reason', 'value': '43'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1dcd863a-f499-422b-a63a-165245cc7a6c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.033951s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.030406s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_many [0.081461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23bca22e-6335-406d-ad49-4d5fc90d295b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "9196f18d-3b18-406b-b0cd-f7c1550160f6", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/9196f18d-3b18-406b-b0cd-f7c1550160f6", "rel": "self"}, {"href": "http://localhost/runbooks/9196f18d-3b18-406b-b0cd-f7c1550160f6", "rel": "bookmark"}]}, {"uuid": "599d58fb-3515-431a-98f7-1d38c7b03b47", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/599d58fb-3515-431a-98f7-1d38c7b03b47", "rel": "self"}, {"href": "http://localhost/runbooks/599d58fb-3515-431a-98f7-1d38c7b03b47", "rel": "bookmark"}]}, {"uuid": "7427e2dd-af24-4c45-8721-462855baaa2a", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/7427e2dd-af24-4c45-8721-462855baaa2a", "rel": "self"}, {"href": "http://localhost/runbooks/7427e2dd-af24-4c45-8721-462855baaa2a", "rel": "bookmark"}]}, {"uuid": "0679fa31-0f14-41c7-aa4b-9895c87dac29", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/0679fa31-0f14-41c7-aa4b-9895c87dac29", "rel": "self"}, {"href": "http://localhost/runbooks/0679fa31-0f14-41c7-aa4b-9895c87dac29", "rel": "bookmark"}]}, {"uuid": "9fd22054-8474-40f9-8eb4-57e8ee6d5514", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/runbooks/9fd22054-8474-40f9-8eb4-57e8ee6d5514", "rel": "self"}, {"href": "http://localhost/runbooks/9fd22054-8474-40f9-8eb4-57e8ee6d5514", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.040433s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_states_console_put_observer [0.162781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5af242fc-cda6-444d-b661-6e0e38f0f465 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.112833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-60ca60a5-0fb9-4e12-97f7-1d14244e0311 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_one [0.039653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6c2e86b-0263-40bd-9bd7-e77e433831a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "dd390350-53ee-4b9d-827a-bb29ffb36947", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/dd390350-53ee-4b9d-827a-bb29ffb36947", "rel": "self"}, {"href": "http://localhost/runbooks/dd390350-53ee-4b9d-827a-bb29ffb36947", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.040918s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sensitive_data_masked [0.040223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/11753d15-7172-4151-b4ca-ad53914af040 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fa94f02-0971-44ac-bc33-09ba2a5f9d03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "11753d15-7172-4151-b4ca-ad53914af040", "created_at": "2025-05-19T19:09:57.385726+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/11753d15-7172-4151-b4ca-ad53914af040", "rel": "self"}, {"href": "http://localhost/runbooks/11753d15-7172-4151-b4ca-ad53914af040", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.087271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc003ea5-ffb3-4ba7-9af6-ca93369613d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key [0.042135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df104d82-b807-4ac7-bfe4-823eb445d36e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "b59922c4-75e2-4048-8196-c45cb2edc906", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b59922c4-75e2-4048-8196-c45cb2edc906", "rel": "self"}, {"href": "http://localhost/runbooks/b59922c4-75e2-4048-8196-c45cb2edc906", "rel": "bookmark"}]}, {"uuid": "bc0121b0-0f93-4c50-8251-b3efaf4380fb", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/bc0121b0-0f93-4c50-8251-b3efaf4380fb", "rel": "self"}, {"href": "http://localhost/runbooks/bc0121b0-0f93-4c50-8251-b3efaf4380fb", "rel": "bookmark"}]}, {"uuid": "d77dfb34-fdad-4665-836c-86637b98f52d", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/d77dfb34-fdad-4665-836c-86637b98f52d", "rel": "self"}, {"href": "http://localhost/runbooks/d77dfb34-fdad-4665-836c-86637b98f52d", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.108885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0d43c1d2-4b4d-4f3c-b1ab-ba26818e00a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_allowed [0.045335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-838b89fd-c5ba-481e-9527-cf985d934209 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "cef5a04b-4545-41a0-840a-84576173f843", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/cef5a04b-4545-41a0-840a-84576173f843", "rel": "self"}, {"href": "http://localhost/runbooks/cef5a04b-4545-41a0-840a-84576173f843", "rel": "bookmark"}]}, {"uuid": "8c870f67-16a4-4fe0-b61e-2b9b780ae685", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/8c870f67-16a4-4fe0-b61e-2b9b780ae685", "rel": "self"}, {"href": "http://localhost/runbooks/8c870f67-16a4-4fe0-b61e-2b9b780ae685", "rel": "bookmark"}]}, {"uuid": "b0484f55-d86f-4527-b887-1c112deb7a51", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/b0484f55-d86f-4527-b887-1c112deb7a51", "rel": "self"}, {"href": "http://localhost/runbooks/b0484f55-d86f-4527-b887-1c112deb7a51", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.068796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2b341d3e-8090-43d5-a2c5-490d90d57ed1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_invalid [0.058628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-922f3a08-4729-48f6-82c9-0b49b01469ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/runbooks?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d149dd43-a933-4d2e-8962-2c266ecb7351 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/runbooks?sort_key=steps WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-104b3038-7024-478e-9d59-f1ee265d55a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.063880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-39f52320-42b4-416c-ad1d-fd1bc6450711 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token [0.047878s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.127837s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f283034d-ce0f-4a4e-98a8-e112bfbc252b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.051875s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.286504s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.081905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e4abd160-3a5f-40d2-a2b4-255063541767 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps [0.034250s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.036053s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.028485s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.108719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-767e9188-78b5-459a-838b-e77ebf1455b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.027866s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.062275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8fe621ce-0cd4-4772-b816-193366c4a0e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.021034s] ... ok {0} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_fails_multiple [0.028096s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.018056s] ... ok {0} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes [0.021371s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.026289s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.068135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-33e08e56-fb68-45ab-aff5-8ab940e87d9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes_iso_gpt [0.019307s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression [0.020629s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.037362s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression_disabled [0.022577s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.038197s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.035789s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.017472s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.106362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-db100da0-5805-481c-b334-7accc43be64b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.034409s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default [0.044654s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.201817s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7607087f-dde7-47c7-9236-79a22b92584d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller [0.041795s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.056452s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.069645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e7bd397c-5a9f-47e1-bd21-1317858ba155 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.036719s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.034414s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.033220s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_auth_data_checksum [0.024136s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.054721s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.096368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a53c0c2a-edb0-4b39-a695-b70e184942a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.025672s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.035389s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_combined_algo [0.027043s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.041188s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_manager_can_patch_node_instance_info [0.212043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e1d81a6a-8b97-413c-a1a2-421152b6f8eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_no_checksum_algo [0.043254s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.076750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c468497e-91e1-4d9c-a8f4-ef0ff43e3077 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.036554s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_with_checksum [0.027412s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.019019s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.027331s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_with_checksum_mismatch [0.047268s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.018297s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.094959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7ca5e264-8dd2-4d98-ab35-f394214d39b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.028537s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.113160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-36c23421-47ac-4a7b-87c1-6f27c0fc4fb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.036908s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.030732s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt [0.042914s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.052793s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_lessee_reader_can_patch_node_instance_info [0.083241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ee5ad174-a564-45c2-871f-85740d5f0574 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.028211s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt_backward_compatibility [0.036751s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw [0.040054s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.047339s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.175042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6bf4654b-4c8b-4721-b846-172c137b2d0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_gpt_format [0.021280s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.033518s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_iso [0.019986s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.019093s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.015878s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.016581s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.151215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f8bf803f-fd42-45a2-ba5d-775cba4762b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.050790s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.017284s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.029363s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.024085s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.019261s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.128908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4d50372a-cc6b-4aa5-ba9b-5f8748410246 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.029725s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.024094s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.035190s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.050937s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.132987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e38c332a-e87c-4639-a3b8-bebeeb0ed948 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.022877s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.018545s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.061229s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.016856s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.131410s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7bd0bd3f-a329-49b7-a3b3-3b979bba4123 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.015278s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.021459s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type [0.018651s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error [0.017569s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.024003s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_owner_admin_can_delete_nodes [0.129289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ec8a1ab0-3e63-4063-a696-e2cba32e8608 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.017634s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.016509s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit [0.023996s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.120998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5b123473-b8c1-4b34-9f32-73e90824fea2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.020391s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.019496s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.025296s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.204789s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_service_cannot_delete_owner_admin_nodes [0.134234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7b562170-0657-46bb-a583-b8ec0c856703 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.024231s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older [0.016598s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.017969s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.016082s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image_oci [0.018261s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.016364s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_admin [0.145739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3153d7ed-190d-4441-8c2f-d4c31199d4a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.020705s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.018328s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.017787s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.020023s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_all_conditions_fail [0.047794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.042477s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.026053s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_ironic_exception [0.064534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_member [0.118030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cd75994c-57a9-495f-a47d-a4940faddabe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.040480s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_no_rules [0.042435s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.037246s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_some_conditions_pass [0.042909s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.037434s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_success [0.040843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.020085s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_get_observer [0.140550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-348f12fd-1979-43d9-bf4d-8e3b73e21ce3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.027544s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.019108s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_always_mask [0.069332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.022335s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.017809s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.410177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eed79f33-f37d-4c0e-bd1e-4c2c395b1130 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.017311s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.019164s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.036682s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_admin [0.159416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f988336a-f31f-44bc-95ed-106e33beffc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.100852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a889c4ce-d243-46ab-bcd2-473d133aa435 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.037359s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.031098s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.037210s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_member [0.142938s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4db282d9-eab4-4883-b27c-4001bca8450b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.054889s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.035874s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_never_mask [0.305709s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_lessee_admin_cannot_delete_nodes [0.177495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a147f5df-207e-462d-8c7b-aa37354a7b01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.047173s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.034174s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_sensitive_mask [0.081268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic [0.024493s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_manager_cannot_delete_nodes [0.101796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0f968c40-0357-46d3-8d6b-a0a0461fd590 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.043411s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic_deprecated [0.034564s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.035887s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestSession.test_keystone [0.036489s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.044234s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestSession.test_noauth [0.031167s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.036483s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.046884s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.166018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-82c15d8a-3fda-490e-97ea-b170fcbd36f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.030290s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.044096s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.036770s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.057692s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_admin_can_validate_node [0.098550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bde0dd96-c284-4e5c-ab63-bddd59248452 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.039347s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.054292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.036703s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.041437s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.093579s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-44961b5a-2a03-4e42-83ad-a092eac0e274 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.085119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_put_observer [0.539990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-943ad8a4-6f7f-4cb0-9495-ffb56e482bca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy [0.046568s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.053604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden [0.037973s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_lessee_admin_can_validate_node [0.089566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6d8331b6-5c98-4572-9f71-bfc6e7cb3012 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.045573s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.065417s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.066713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-01740056-dfcf-4621-8c57-2aeb5dc37acb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.050271s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_admin [0.150719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d0de0c63-2027-41a2-b7dd-0f95b448891f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.062732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.032727s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.071930s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-373df996-3654-4225-b834-03a4a1f64092 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.041077s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.083823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.053544s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.071167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43a46093-a18c-4603-86e6-0cfd4d8f46df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_member [0.143928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c6dbe568-9c3c-4ddc-a595-ba1afd6e2d10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.043809s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports_via_not_pxe [0.107214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.083976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e625d171-e527-4b83-9806-a47a93b46531 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.052118s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.035125s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.057901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_delete_observer [0.138970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5bf4af83-1558-4eac-91af-1b0e40d7f54a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.035516s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.083690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f57b4812-8e73-4bc3-8447-cdd775e95044 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.036529s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.078395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.095669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d464e4f9-80c1-442a-829c-3285f084d4c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.058127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.075762s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.071486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-64d16f61-549f-41c5-b9bd-5975d2dee73d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.197797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bb2cd7da-4939-4b82-ba7d-e2db06b4706a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.074296s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.084982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.069762s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a2b7044d-c562-4016-806f-8f26d8ec2d95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.131638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.129823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b003fe18-a678-4a9c-b589-748606d31336 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:00.739960+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.093834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f4851c11-0462-4652-aa35-d7402d48c6d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_member [0.154025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad2bead0-fa06-4e2c-aaf6-9d32cc6a76d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data [0.068322s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.082646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0a7d65e7-8852-4125-8917-18187e5271d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.095531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6d744c9a-53e4-4b73-97ee-63833dceb073 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.058623s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.118472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c6acbd64-dd87-470c-bc4c-39491f912870 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.090387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-efda4a1a-1dc8-4b5d-90be-0d144156ec3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:00.953311+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_third_party_admin_cannot_set_maintenance [0.075792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-19b2067c-6189-4676-a089-57b713b30a8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.102526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.105627s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1fcb9765-27c3-4743-b62f-d83cb1ad5c3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.090804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3a3c9736-db47-4c53-ba74-9a064698d842 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.102868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0724562d-5151-42f4-88d6-04613690d520 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.082704s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.070910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5dbfd607-8af7-4930-9905-19a3db6de41e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.086882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0b046cf9-1716-44cc-aa94-08e5310207f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.059658s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.098860s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9bf79cf2-3f23-4ce3-99b2-6b5e951a760e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:01.162943+00:00", "updated_at": null, "connector_id": "test-connector-id-123", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.119656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bf5bc5c3-2d3a-4786-a3cf-10e796e9fe87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.081098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5343ae39-aa51-4318-9cc8-f5035a9b2ff9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.090669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.129443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fb250ccc-80cf-44af-bc60-3d20bf77b508 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.086630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/value', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df83ba58-3365-46d8-b45b-da46cab64630 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_admin [0.144230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-74bafe76-8de9-4c82-97d1-4c39995b6ee1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.124797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_member [0.103295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a7d2b38-1deb-4841-b879-c411941fc566 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.340872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8c04430f-fd41-411d-b0bf-ff1b5dabfa74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.310355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.451620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19d20ce8-b9ff-442e-93f5-869653bc7ed9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:01.525714+00:00", "updated_at": "2025-05-19T19:10:01.571115+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo2": "bar2", "foo3": "bar3"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf7ee1ab-f7f7-43fc-84fc-b108e5c10cd8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:01.525714+00:00", "updated_at": "2025-05-19T19:10:01.571115+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_get_observer [0.374579s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dc227044-5dc5-42f8-b325-de972d98fd88 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.215322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7abb196d-9830-4089-86a0-f00abaaa46ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.264080s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.226907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-32c3b2bb-fb77-44fc-9a02-77cd5257b09d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.241342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f39c21a8-2f42-4a49-a297-6bcbfa139a59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_admin [0.432759s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-94f3005d-6553-4e47-9f8c-73e5c4fd6a49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.317181s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.276586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a30e4dae-f94f-4b48-b288-7ca16410c45e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.219875s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5bb859ac-69bb-4e7f-8fd8-31547b3b5083 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.251947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.528481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/25d2dc5f-cf26-4584-a8d4-c052821ea0c9/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a642ca4a-ea2b-48b9-9102-921bc8553ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 25d2dc5f-cf26-4584-a8d4-c052821ea0c9 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_member [0.421237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-67b64a48-efe8-4718-ab8e-846ee1b7b7ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.259897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-9c249706-f22b-4b0a-8e93-f9349d24cc1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.357049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_post_observer [0.256183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1f1cb628-4414-45c0-a8b1-e23f0a7c5338 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.067662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-938a014f-ef09-4109-9ef5-c0021ed859f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.464882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ce16b585-e3b5-4e65-bb23-099bb65dfa74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.326038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4ca7ab6a-ea4e-4b7c-acff-b398406d68b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.105201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3f0241d3-210b-46da-b309-da5a52f74323 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.321371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.272240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3f535a5-96f2-4fdb-a31f-9396bbb9f059 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:03.297497+00:00", "updated_at": "2025-05-19T19:10:03.314715+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.275453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f2a68b24-d5f6-4891-85f5-378cc37da1a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.445699s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3cfe41d8-dc3d-4db1-bf76-8359f57fe54f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.283698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.278833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e31e398e-c674-4388-b0f1-ede6d8faa22b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.450741s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2ed4ebf2-b5ce-4276-88fb-6a6b788e7deb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.586585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e63eb269-609c-4cb4-956b-03d54b052e5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.451671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.211532s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.043925s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.067404s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.362038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2b9544b9-9f3f-4802-a2c1-5f1174d195a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.056436s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_member [0.401266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7f4343d7-b836-44ac-9ace-8164f1748f68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.113528s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.090998s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.084562s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.266591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d7a7c355-3b12-4017-8711-d6fb85ce0d34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.416672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-da0c5060-f0df-4980-a5a3-eff2715fa674 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [1.403207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ceb5589-4d6b-4f2e-b10d-adb3fec61440 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:03.796666+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged [0.515095s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.125612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2c6287fc-4449-42b9-985f-e747ccc3ae9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.463826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3b502d8-07d1-4b90-8c76-adc6ae576a44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.178103s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.167986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-25980b19-075b-4a29-a270-590b6613191a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.267895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-77808d17-9b38-4c29-af84-5d58c4a916c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.264854s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7351b7a-010c-49bf-bc82-bbdb42da3db6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:05.525536+00:00", "updated_at": null, "connector_id": "test-connector-id-999", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.282052s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [0.205445s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-25818ebf-093b-46f6-b26e-c6f1acc3f4f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.265389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e556874-a373-4e35-9adf-560e33b7b817 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:05.823678+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_admin [0.438035s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b3b8959-d790-4783-baa2-e421205727ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.154269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.398162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3808e1af-e7fc-4d8c-b0d8-6681a16bbce1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.522579s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.239568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/6e2a0aa0-cc09-491f-a03f-e9d518ea4c5f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b6395011-e487-4391-8a46-3a35f75d1b46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 6e2a0aa0-cc09-491f-a03f-e9d518ea4c5f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_member [0.379996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40214711-8d7e-4251-97c4-61a96b8341cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.160275s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.104205s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.164902s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.332199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e668756-1b90-4a2d-8792-d6be4d9ee70d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:06.529893+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.472480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0c95af22-5344-47f9-beb7-6d7149be0076 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_get_observer [0.405767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cabff00b-7b43-4b31-8f7c-37270b03f784 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.152325s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.241351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3b82aa1b-0168-4696-9fa2-8ae9220fbae6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.153117s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.126188s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.418562s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-556cf7ce-7c0a-4055-b9b3-0b5713af1dbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_admin [0.374470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/af45ca08-8fcd-4184-b3e3-49816a0ce194 Openstack-Request-Id: req-f4507300-cd86-49d2-b589-5fe5073f485e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "af45ca08-8fcd-4184-b3e3-49816a0ce194", "created_at": "2025-05-19T19:10:07.132706+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "links": [{"href": "http://localhost/v1/portgroups/af45ca08-8fcd-4184-b3e3-49816a0ce194", "rel": "self"}, {"href": "http://localhost/portgroups/af45ca08-8fcd-4184-b3e3-49816a0ce194", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/af45ca08-8fcd-4184-b3e3-49816a0ce194/ports", "rel": "self"}, {"href": "http://localhost/portgroups/af45ca08-8fcd-4184-b3e3-49816a0ce194/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.108935s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.316841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-322112a1-2d1d-4d0c-8e45-14eb57870f15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:07.065805+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.103425s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.116147s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.276423s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f770856b-b9e3-4412-be46-0a875623c4bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_member [0.396573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-288bf1d9-8e17-43ad-91d2-e83eb7ed906c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.124520s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.472737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b5753160-4cc7-41dd-baac-0d0d054012b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.133880s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.135559s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.327902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/boot_index', 'value': 100, 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6805d4c7-8f25-4002-8121-1fc85d765a73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:07.662512+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_post_observer [0.342633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3b6eb72-7184-45eb-a3fd-be38cf2cedc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.161405s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.468727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bf695e9b-0318-45b4-9d89-a203f368c191 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.078719s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.224633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8a281b06-732b-4adc-899e-ba8fa06ec41d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_admin [0.237438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-047522aa-0f58-4dbb-b507-4fe2a24cf0f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:10:08.033843+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.098543s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.086655s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.239615s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/boot_index', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-44f78f78-07c1-4884-988b-816350f2498c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound [0.093727s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_member [0.279133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dbc45509-76e0-4d14-a1ce-c4f25dcf7b18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.383748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-618c92ba-da1d-409a-964f-dccb5f3401eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound [0.088152s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound_empty [0.100702s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_not_found [0.059647s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_osc_error [0.021733s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_detail_get_observer [0.236909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4475186a-2463-4214-82fa-c04695727763 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:10:08.568004+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.053855s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.283594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/f53ede96-bb86-4d54-8abc-23314201d598/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-56ee544b-b4df-4a2a-beb6-b029167d6c43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node f53ede96-bb86-4d54-8abc-23314201d598 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.028959s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.415213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-835ec684-90e1-41fd-92bb-70e0eada0e5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:08.502513+00:00", "updated_at": "2025-05-19T19:10:08.523980+00:00", "boot_index": 0, "extra": {"foo2": "bar2", "foo3": "bar3"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64a40906-3f37-4263-91d5-f9e4bf6764a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:08.502513+00:00", "updated_at": "2025-05-19T19:10:08.523980+00:00", "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.036474s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag [0.023739s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_auth_needed [0.038876s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.189659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e69a0c4-54b0-4b33-8e07-688e28c771ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:10:08.783194+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_follows_links [0.028577s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_if_not_found [0.029834s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.158049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fbcbfe34-f0c3-4c5c-9621-04b92b7c3642 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.201752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-515e5a37-93cd-4303-af43-284bffe4c17e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.091844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2c425a0c-f468-4695-8d7d-7f528b89810e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_temp_failure [0.067923s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bad_header [0.068825s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_owner_manager_can_get_supported_boot_devices [0.149742s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8cb93d4d-b648-4861-b815-d0b588fe15ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth [0.022476s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth_no_username [0.028042s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.216450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-79bcce78-9d32-4903-a27a-a1e39e33025c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bearer_auth [0.050719s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_fallback_to_service_config [0.055654s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.297587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53f052b5-f322-45da-8c12-c4b590ded087 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:10:09.123713+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_no_header [0.060097s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.179777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-49c5538d-cd29-406a-8831-987a8bb79f6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_member_cannot_get_supported_boot_devices [0.249802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ed543de3-d2c5-4902-a95c-25a1ee651d86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_noop [0.064177s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.085494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0c987827-e97b-49cb-bf77-fff6ed85526a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest [0.049053s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.091677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ea796c8-4691-4f70-8958-27f2c2f5da15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.200245s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7fc16ead-a968-4ebd-986c-a44798440965 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_401 [0.073698s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.108112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7ac120cf-d458-4d88-954e-9d58a128e1da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_403 [0.029842s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_404 [0.024590s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_500 [0.037653s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.082714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7eed4d5d-b952-4130-8234-22213287a41e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:09.529740+00:00", "updated_at": "2025-05-19T19:10:09.535173+00:00", "boot_index": 0, "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_check [0.049995s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.214510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-02a1088b-6016-49e3-97a5-2a1577f792c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.061915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c101aff-1a86-4f40-8fb7-0d0e7b18dde8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_access_denied [0.050167s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_authorized [0.050211s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.086758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad45d4aa-28ca-496f-a040-d429f297191a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:09.695377+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.312146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-df82763d-fc5f-4520-a77b-e94fea300e7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_found [0.045635s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.050619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-84368682-f23e-4ead-8a19-d371eac16965 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_temporaryfailure [0.034616s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_with_tag [0.036263s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.060256s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d4a7fd2-16bd-4670-9e84-591853458fb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.213994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-40f70200-1de8-49ab-b3d5-b4db0b6cc528 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest [0.023766s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_auth_required [0.019515s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.058524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39800a69-167e-4e29-ac8e-4fc30201ec4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:09.875443+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.169619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-13a29542-088f-4242-8f1d-c1dd21355170 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_checksum_verifies [0.052563s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_access_denied [0.034611s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.147410s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-70e887c8-f4ca-4eff-89e1-484bf530d155 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_not_found [0.022694s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.112431s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ada0073-029f-4fef-8f22-e27281a4a774 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:09.965705+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": "bar"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_temporary_failure [0.021529s] ... ok {0} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config [0.025001s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.056272s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_bad_file [0.026761s] ... ok {0} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_default [0.028585s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.054842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/06b586c0-b8ad-4a5d-89d7-6db835d5d482 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b8110ec9-9d7a-4216-995e-bf7c576c383d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 06b586c0-b8ad-4a5d-89d7-6db835d5d482 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_no_match [0.032365s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_manager_can_send_non_masking_interrupt [0.161442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f1a33352-03ef-47bf-81d9-4e86cc4fbb61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.030861s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.026507s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.032896s] ... ok {3} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.052945s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.026696s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.022524s] ... ok {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.042021s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.029790s] ... ok {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.042403s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.036412s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.183028s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9991c1d5-7c06-4e0b-9a0c-1e5f1f6ec619 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.068039s] ... ok {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.045889s] ... ok {3} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.041837s] ... ok {3} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.039907s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.155951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f9b9a2af-02f0-435a-b247-f75a49c7425e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.604135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-76e52670-73cc-44ec-81f8-3a9755177837 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.034323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9ff3b3a-1a54-473e-a18e-d0c402bc6c1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {3} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.052387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/foo WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.038878s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-be57367d-ce35-4e53-a01f-194aca1df224 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The server could not comply with the request since it is either malformed or otherwise incorrect.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_third_party_admin_cannot_send_non_masking_interrupt [0.164482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/43e5a290-8e12-420f-ae8f-17c45ad16758/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-321d2247-1726-4151-a026-380230b33b89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 43e5a290-8e12-420f-ae8f-17c45ad16758 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.045514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8301f1d3-2565-43b9-928b-8a2a229ae5c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.22 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]} {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.366622s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.173967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-16463b57-1e01-4f04-9297-68a805774ffb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.059680s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3f82b01-215e-4c92-8da0-2eab94794e94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]} {0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.066148s] ... ok {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.033831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3f794bed-1db7-4970-b136-3fbd7f25ee2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.033355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73b3db6e-316a-4dc9-8e45-9ae2c760a6e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_servicing [0.052033s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.020196s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.043542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ foo() migrated 15 of 15 objects. {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.206197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-089c50e2-42fa-4a37-9426-4eb29af19f27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.026231s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.052882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.027184s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.216728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1e710b03-d6a1-488d-9b98-a12ea82f33b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.030548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.027505s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.021039s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.059957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 15 objects. {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.031160s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.039334s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.053486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. {0} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.028485s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.186907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d9ab148-e42f-4716-b8d3-5c1d3ad230fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.036571s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ Error while running foo: bar. {0} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.026877s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.025977s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_admin [0.193413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56d86eb8-8b3c-44f7-be2c-87f5c6346e92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_command_not_found [0.032223s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.033336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.023503s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.025547s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.054444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.023850s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.020135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default [0.034144s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.021011s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_128_third_part_admin_cannot_get_states [0.190509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/6caab758-db20-4b51-9d8b-b506b1451169/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1367c497-316a-43b8-a0ee-8cd8f30688a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6caab758-db20-4b51-9d8b-b506b1451169 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.043141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1key1=value1 {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false [0.103704s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.074596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1.key1value1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_member [0.258472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9eda9078-150c-4870-a458-3886fee8417a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true [0.076416s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.126795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ "max-count" must be a positive value. {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.103688s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.077072s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.168837s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Data migrations have not completed. Please re-run. {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.063493s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_admin_can_put_power_state_change [0.477029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9d3b51eb-d2ae-46e4-877f-9991dfd41a25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.081509s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.152980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.076318s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_get_observer [0.552422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b6fa395-b537-4da6-b240-9c457babb2c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled [0.089053s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_owner_manager_can_put_power_state_change [0.235978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-30f1cad8-c988-4634-a7ab-3ba1f1f22aab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.174364s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.088679s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.077605s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.146251s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_lessee_admin_can_put_power_state_change [0.180900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ff52a8c8-04c0-4061-ba50-6ab5ea896fbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.074198s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.063379s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.088176s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.096010s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.533886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09149296-68bb-48bc-af2c-9e4535dac1ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:10:12.174986+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.334889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d83fabeb-b289-4617-810a-93c566a8569e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.084470s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.090206s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_owner_member_can_put_power_state_change [0.218134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a038c48e-7f87-4fe8-9f39-b9cc2b193e83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.097931s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.074053s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.060709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.455806s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6adca92b-3ab8-49b8-9a56-cec967e623d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_lessee_member_can_put_power_state_change [0.232812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b1c8e707-91aa-49bc-8847-2945fe6d60d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints [0.084995s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value [0.062913s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer [0.047208s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values [0.049667s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space [0.034877s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.276023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power WITH {'target': 'power on'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d1c62db0-bb0b-44c0-9f89-a54c3db1f82d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator [0.068075s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value [0.070688s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value [0.058780s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [1.289920s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in [0.076937s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.577788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c17aaaa0-0da0-453b-afab-6b1fec6d619d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:10:13.198532+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_reader_cannot_put_power_state_change [0.330202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power WITH {'target': 'power on'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cadf23b5-a2e5-4f75-a0dd-4195133a6e1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space [0.056367s] ... ok {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.151995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ This is bad {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space [0.079400s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space [0.066080s] ... ok {3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema [0.155677s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space [0.059546s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or [0.039349s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_137_third_party_admin_cannot_put_power_state_change [0.310994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/3aa0d3d7-4733-4eaa-9f1d-86503bc636d4/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5a222f34-484a-4e5c-831d-dd6146361e7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 3aa0d3d7-4733-4eaa-9f1d-86503bc636d4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args [0.145343s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational [0.053250s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size [0.038217s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_admin [0.499152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6314d0d1-1f7a-4be5-ba48-d27c39f08640 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or [0.056045s] ... ok {3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs [0.136380s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid [0.066530s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path [0.061100s] ... ok {3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed [0.118035s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.353685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-20ba0816-fab4-47e8-b5dc-719f74723b1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl [0.077519s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_empty_response [0.104893s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model [0.063275s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_member [0.338848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1f745ae4-adf4-4b21-a9ac-c3c7a371fcdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline [0.103155s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name [0.076206s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline_no_file [0.073154s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational [0.076290s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial [0.062367s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_nomatch_line [0.068557s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.378703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b10b5730-9588-45a9-a94d-bd37a487b8cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size [0.063429s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_one_line [0.090741s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_get_observer [0.300348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0dc52086-cc21-4358-9914-151e601a5ddd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor [0.064126s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn [0.086797s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension [0.060958s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.209538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension [0.067726s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_lessee_admin_can_put_boot_mode_state_change [0.345595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3571e021-7a12-4850-bc33-c63fab25a613 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints [0.058426s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint [0.053423s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_admin [0.361919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a67f8648-8543-45aa-b52d-9958f47553b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name [0.074022s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.242972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space [0.069246s] ... ok {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators [0.074954s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_manager_can_put_boot_mode_state_change [0.352784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-71008ecc-7d87-47ea-ac06-eadc783667d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators [0.074978s] ... ok {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink [0.077124s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.275316s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_member [0.389725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-62a45739-bd5b-4d78-8f56-f4deec4b22e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_conn_init_failure [0.233048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [0.425817s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-dde24e81-39eb-43e9-a3fd-1c9d8aeb8f90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_post_observer [0.431717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fea32168-a8d8-44ad-98dd-b2502ccbca15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.273449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_lessee_member_can_put_boot_mode_state_change [0.330865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-846ed942-9089-402c-bef8-b53b160e1d11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.246179s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_admin [0.384389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-335d9283-2e65-44c6-9ba3-e8ee91ec7717 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:16.052217+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.216532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode WITH {'target': 'uefi'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bcb8fa6a-0fe9-48d4-8960-8aa206a7c735 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink_ENOENT [0.980849s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.283265s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_reader_cannot_put_boot_mode_state_change [0.169233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode WITH {'target': 'uefi'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9f4796af-45a0-40e6-aa9b-6e70d4f34b8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.123437s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_third_party_admin_cannot_put_boot_mode_state_change [0.161075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/8d9f6354-46f9-47bc-ad35-4e98a255667a/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-df1c6fd9-9ac1-473a-be4a-cce25feec435 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8d9f6354-46f9-47bc-ad35-4e98a255667a could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.120580s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.248117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_member [0.419196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dab4fe5b-2ac7-4c94-afe3-b476b5e59624 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.186162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a4e20240-3451-4ff9-a03b-af74b99cb5f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.197335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.225852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.133947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_detail_get_observer [0.349306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-742c8f6c-eff8-4c04-a515-54ccd017a4e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:16.898701+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_owner_manager_can_put_secure_boot_state_change [0.296678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-49558a1c-2f42-4987-b0b3-9694eb1faca7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.161734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.116950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.291380s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.259784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-78a237b7-7520-4494-9c00-7142de7507a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.133878s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_conn_init_failure_bad_request [0.217950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.111695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_admin [0.427549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd2b7f00-9615-498e-bdb4-2b19450a5407 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:17.321668+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.233892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fa7cd7f8-e227-48fb-abc7-08948200dd0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.213245s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.246905s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.274744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3d6013d4-f447-4a07-9c12-720eca0780cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_member [0.399648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cb9334b0-c3a3-441d-8e6b-cc5b2a1d3c5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.254274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.217450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.268004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d09881a0-66aa-4d2d-8b14-a8a8d7abaf45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.223881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_get_observer [0.385348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c20c6409-38ac-48ee-8922-9cb23163db8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:18.148144+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.439854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.238041s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_153_owner_reader_cannot_put_secure_boot_state_change [0.352043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot WITH {'target': 'true'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2f55200-21fc-4a4f-b108-496d4ddc44c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.270282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.231296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.340290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot WITH {'target': 'true'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8fb39e38-cabb-494c-a51f-9a6dca03a5c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_admin [0.511779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-729e316b-39c8-4529-b03f-8218612c84b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.200827s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.126531s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.509552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.121327s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_member [0.402584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6364a4f7-9ff0-43ca-abcf-6888402ef0cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.128880s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.126925s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.376390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_patch_observer [0.439207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fb5ead4b-a264-47b2-8a45-fc351bf7c33b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.246638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [1.201883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/26bb737a-45f4-4f26-b207-a16b3eb71dc2/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c5685c53-62d5-4092-87e8-d96c011f07e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 26bb737a-45f4-4f26-b207-a16b3eb71dc2 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.299279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_admin [0.430273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b6df9836-2fd3-4e4c-ae00-abd554a8c717 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_owner_admin_can_change_provision_state [0.390566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-608b28ef-360a-4569-b8f5-c46ef7ad909b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.394404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_member [0.382818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a3a20d8c-26b8-49ec-8760-40e5a074ef96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.392698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9d50b93c-1b4e-4fbd-8321-cb3e0224fb1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_ports_port_id_delete_observer [0.439696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-de9f29bd-191c-403e-87ab-68c83173ece1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.607748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_admin [0.392880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f03c71a7-3008-4320-a14e-c6904fee1b2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_owner_member_can_change_provision_state [0.560382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d71254cf-4871-4e07-ba86-f19e3600de28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.440120s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_member [0.305047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-889e4183-30a5-4f9a-8bea-b1d1ab0260e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.461835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-57df36de-84de-4a94-af7c-aedb22002f6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_get_observer [0.379645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6de92cf-b00b-4917-a700-fcbcce511d4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.560162s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.429424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-22e7752b-f2f6-4f09-a93c-b46040a2aded X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.303721s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.424631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba2df06b-3ab5-41da-97a7-601408c1913a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:22.278948+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_member_cannot_change_provision_state [0.359434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision WITH {'target': 'deploy'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7fed7fb8-3cf7-4a4a-ab28-3b46bfea577e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.342569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [3.363864s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_member [0.406960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ed62c50f-82e7-49ed-a6fb-bb82b010ec4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.365872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_third_party_admin_cannot_change_provision_state [0.441357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6e1e5320-04fd-41b4-95b0-1d1e8084ff7a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.420291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-933fcfa1-3ce0-4df6-a07a-91e6afe5bbf8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:10:23.123117+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.357418s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.398496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e2ccb22e-9f40-4b0b-b449-26ec05ce224f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_admin [0.385305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-703dbf4f-dde5-4fa9-baaa-d5f3381db65c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.321768s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.362992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bbfbe9a9-c1fd-40d5-8563-ebc2d9896e8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_owner_member_can_set_provision_state_clean [0.241446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'clean', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f8e9a433-af11-4c46-b68e-041beee12016 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.417897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_member [0.455681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-58ceb10a-2319-43c9-b2fb-464f7b9ed984 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_reader_cannot_set_provision_state_clean [0.229088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'clean', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2903a434-2f5c-46f6-bdb2-b484150f48a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.277883s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_can_set_provision_state_clean [0.193771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision WITH {'target': 'clean', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b673168c-7496-48bb-a3f0-2d536dc0a0e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_get_observer [0.392141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58ba4bd8-e7ea-4856-b309-5c3a60496a4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_member_cannot_set_provision_state_clean [0.214434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision WITH {'target': 'clean', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1a5c020e-9576-4db9-9559-4d99b4c1ca44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.421907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_provision_state_service [0.210010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'service', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-be76c9b9-6d5c-449f-b12a-3eecceecebc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.433087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da237ec2-f2e3-4b6b-9cbe-8f3af7988e22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.377018s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_owner_reader_cannot_set_provision_state_service [0.330605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision WITH {'target': 'service', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b7b04481-3af5-48f1-a1e6-36614b9e5bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.356327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-84e31f42-f988-4946-9b50-2ea63b551c0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.250516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_lessee_admin_can_set_provision_state_service [0.310073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision WITH {'target': 'service', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-43f61476-dd4d-428f-8ff7-821faa8fb36f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.421193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-264b5004-f8b2-4cf2-af55-a49e31513746 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_lessee_member_cannot_set_provision_state_service [0.224279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision WITH {'target': 'service', 'clean_steps': [{'interface': 'deploy', 'step': 'update_firmware', 'args': {'foo': 'bar'}, 'priority': 99}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c5d853c0-dc2a-48db-b0d2-e0645a4fc9d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.390133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_admin [0.320773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b792791b-3a8e-4869-8544-8749b7bf13a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_owner_admin_can_set_raid_config [0.320823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5cc082c9-d39f-4fe0-8746-fecc3d0321f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [3.595709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_member [0.339668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-026bac41-c111-419b-8855-a72d4f287c01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_owner_manager_can_set_raid_config [0.320836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6b7d43f5-33e8-4f00-8c5c-c82ff9fe81d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_lessee_admin_cannot_set_raid_config [0.348777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e3bfefa6-c408-40e9-abdc-ea3731814046 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_lessee_manager_cannot_set_raid_config [0.290395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0633cf65-11bb-4795-a897-832d59dcbfb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [1.374431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_177_owner_member_can_set_raid_config [0.281989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5cc06712-c82b-4e01-b03b-b3068b4b0f1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.278759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_service_owner_can_set_raid_config [0.283775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d0cf8ba9-3ded-48d9-a1e1-a202d30e2586 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_get_observer [1.321230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad8db74f-554a-4588-b6b9-eea20414bf29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.309330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_179_lessee_member_cannot_set_raid_config [0.307638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d0ec9046-b56d-4e32-8915-09b4a80c0b5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_admin [0.345290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7927e2b6-872e-4c5d-8b91-115a65cdc68d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "3b63e825-bd63-4a44-94e1-18db3e5d49d2", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3b63e825-bd63-4a44-94e1-18db3e5d49d2", "rel": "self"}, {"href": "http://localhost/volume/connectors/3b63e825-bd63-4a44-94e1-18db3e5d49d2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.324864s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_third_party_admin_cannot_set_raid_config [0.311203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6ea2ea32-c6a2-47c5-8aac-7948fd229507 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_member [0.248866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0cc074bb-4011-420d-b486-99acbf85a352 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.284954s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_service_cannot_set_raid_config [0.323286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4dfab4d7-37dc-4170-abe4-5ee3f5e23cac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_get_observer [0.252170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2470bddd-d2ec-40e8-8fc7-1c6497f82be2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "c8683be0-02c9-4291-9cb8-74990aca1da6", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c8683be0-02c9-4291-9cb8-74990aca1da6", "rel": "self"}, {"href": "http://localhost/volume/connectors/c8683be0-02c9-4291-9cb8-74990aca1da6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.493886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_admin_can_get_console [0.308651s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a44f22fd-b5c0-4f90-8941-6fc1558a8eb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_admin [0.317197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/7b4a7831-a81e-4b53-b84b-f40bc95785a2 Openstack-Request-Id: req-4b873475-e13d-4d16-8e6a-ace6a616bb6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7b4a7831-a81e-4b53-b84b-f40bc95785a2", "created_at": "2025-05-19T19:10:29.137984+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/7b4a7831-a81e-4b53-b84b-f40bc95785a2", "rel": "self"}, {"href": "http://localhost/volume/connectors/7b4a7831-a81e-4b53-b84b-f40bc95785a2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [2.844948s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.296093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_member [0.313231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d38beba0-f45b-4dd6-a9eb-c72d13ffbec7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_manager_can_get_console [0.354606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0a1c2a75-6c90-4e36-990f-9757931a068a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.238238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_connectors_post_observer [0.340825s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d831e749-b685-42b4-a12c-8398944b4490 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_service_can_get_console [0.341238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c799be42-3c6d-4e6b-9c47-cf1515e09de6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.209394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.272527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.342031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/ca3014b2-e394-4cc6-a32d-28291567025b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21e0da23-2204-413c-a117-8b4564bc3b3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca3014b2-e394-4cc6-a32d-28291567025b", "created_at": "2025-05-19T19:10:30.034887+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ca3014b2-e394-4cc6-a32d-28291567025b", "rel": "self"}, {"href": "http://localhost/volume/connectors/ca3014b2-e394-4cc6-a32d-28291567025b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_console [0.427620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cb41ba1d-4574-429f-beef-acd5d81e7c3e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.282249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.324342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/112b1401-fba6-46e7-acec-0c267d4c121b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5d6bfb2-a582-4f2b-9866-b879d1605cc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 112b1401-fba6-46e7-acec-0c267d4c121b could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.141255s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_console [0.328432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3cc6e6e7-8378-4dc6-9e80-35765274630a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.274163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.433587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/d2d84d0a-2d96-49de-8ab1-562faab91495 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cdc8c834-79e8-4dc7-81b2-06560274d884 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d2d84d0a-2d96-49de-8ab1-562faab91495", "created_at": "2025-05-19T19:10:30.757020+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d2d84d0a-2d96-49de-8ab1-562faab91495", "rel": "self"}, {"href": "http://localhost/volume/connectors/d2d84d0a-2d96-49de-8ab1-562faab91495", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_owner_member_can_get_console [0.448186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-433bc216-de50-4fb8-ba77-6d4d32b168c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.310139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.429434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/ade50014-22ed-4b1d-9915-0faf89bf67f4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ff4f8490-f225-435c-ac72-9fb0d67930d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.300234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_get_console [0.427048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-88db15cc-344d-4338-bc61-e93a4bdfbd30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.301470s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_reader_cannot_get_console [0.257202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9936bf72-c2de-466a-a08f-b2b88a14e9e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.436237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/e7e1d9de-77b5-4a36-8eab-807a87bf0893 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3c5ec93d-d342-4e41-9823-abec7218d3ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector e7e1d9de-77b5-4a36-8eab-807a87bf0893 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_lessee_reader_cannot_get_console [0.095351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa7a3899-21be-42ef-8e19-2f64dc023f28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_third_party_admin_cannot_get_console [0.156677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-92412459-5b8e-45d2-91f2-12ee971e7ce4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_admin_can_set_console [0.111392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc96396c-d460-4ae7-9c9e-cfc13d002242 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_manager_can_set_console [0.117447s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d539f123-0997-4090-b88e-6e8cad9c514b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.509046s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/7020d211-46b7-42ba-acc8-c42b21ff59b4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-11969aef-faf9-4d3b-9a47-2313e0aa8a79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.627378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_admin_cannot_set_console [0.217971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {'enabled': True} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a4b1c732-1882-4e54-8144-9577ca0950fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [3.370623s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail [0.346996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.431350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/b1259e3d-706e-41b4-aaed-1026aa031b81 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-27c3cac0-4c6e-4aa4-a01d-c9d0bc6cfb09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.091838s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.107969s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean [0.243428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.115566s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_manager_cannot_set_console [0.507664s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {'enabled': True} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce049dff-1f89-4912-9eb6-09f3ee06d47e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.111709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.396105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/c78b5972-8f8e-4686-8ca6-7a84ab3b6398 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ba7f1317-a06c-40f5-bf95-3c444037eab0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c78b5972-8f8e-4686-8ca6-7a84ab3b6398 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_owner_member_can_set_console [0.146362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7d93947e-fa6d-446a-8459-1521eca436f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.196801s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_lessee_member_cannot_set_console [0.147746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console WITH {'enabled': True} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-39e698af-8984-4cf4-b09b-67ee0fc756a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.257213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/cc1e1e5e-4cec-4d37-8a85-ca6fdc924513 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eb6d44cf-7e4c-4a41-8c41-3561427c2d8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.246266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_service_can_set_console [0.219169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a4b2f928-351f-4790-a36d-e280fa275454 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_admin [0.243240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81a17aa7-cb96-4647-a9f3-fce8cc283bfb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "d2330470-d50e-4b8b-9630-fdaed92d7b40", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d2330470-d50e-4b8b-9630-fdaed92d7b40", "rel": "self"}, {"href": "http://localhost/volume/targets/d2330470-d50e-4b8b-9630-fdaed92d7b40", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_service_cannot_set_console [0.245766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a8a43046-6916-40ec-95c1-fb3644102c94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_member [0.230794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bd825096-6fb9-4fa6-8139-43aa61f6807f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.465246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_admin_cannot_get_vendor_passthru_methods [0.202190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-34b990c1-8fac-438b-abc5-cb274ffd16c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_get_observer [0.176801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9254861-eaf6-40a0-aaba-676b0d8d2e04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "23e62177-b246-4840-9510-e752996b95ab", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/23e62177-b246-4840-9510-e752996b95ab", "rel": "self"}, {"href": "http://localhost/volume/targets/23e62177-b246-4840-9510-e752996b95ab", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_owner_manager_cannot_get_vendor_passthru_methods [0.146576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ccc31498-0f0d-4015-a310-f27384ea1332 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [1.122667s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.342421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_admin [0.189044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/5382fa19-1e63-41f7-b777-e39f3b97074a Openstack-Request-Id: req-2931c2ab-c86d-4aca-90a1-3c68632848bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5382fa19-1e63-41f7-b777-e39f3b97074a", "created_at": "2025-05-19T19:10:34.240430+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5382fa19-1e63-41f7-b777-e39f3b97074a", "rel": "self"}, {"href": "http://localhost/volume/targets/5382fa19-1e63-41f7-b777-e39f3b97074a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_owner_service_cannot_get_vendor_passthru_methods [0.157635s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f2d1c060-2d76-4ccc-9c8f-02e60f1278ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.102504s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.096951s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_member [0.198666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-77a93ee8-b7e8-414a-9c1c-79478a21592a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.092949s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_owner_member_cannot_get_vendor_passthru_methods [0.224069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d0364746-0885-49de-a347-4ae2eddb3162 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.081986s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs [0.448942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_targets_post_observer [0.257530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a5c6d41c-8a70-469e-a260-69ad60f78ae1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.131351s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_owner_reader_cannot_get_vendor_passthru_methods [0.239910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-57cfe397-34c9-46e0-8659-78d372a83983 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.145221s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.234307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.268701s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/7b00cc20-778e-4669-a7b2-9b058fb420c5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc90bc7c-da01-42ad-974c-fb23081f5626 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7b00cc20-778e-4669-a7b2-9b058fb420c5", "created_at": "2025-05-19T19:10:34.864146+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7b00cc20-778e-4669-a7b2-9b058fb420c5", "rel": "self"}, {"href": "http://localhost/volume/targets/7b00cc20-778e-4669-a7b2-9b058fb420c5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.083097s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru_methods [0.214287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7d660791-4dc4-45f3-ac13-bad2b9017fab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.127039s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.227453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_member [0.211927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/3d4537f1-0eea-41a2-a817-8302bae3d564 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ddf33ed2-f7e6-4f4c-bff8-bfe199c3714a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 3d4537f1-0eea-41a2-a817-8302bae3d564 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_lessee_manager_cannot_get_vendor_passthru_methods [0.232891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bd6cee57-d1d9-45df-8fa9-0d524ad55bbb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.146546s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.197816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.122732s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.246472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/8943c305-be36-4a9f-b1f8-4bd7f8be4cc2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c65d1726-ca33-454a-a8dd-fe89407ff0ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8943c305-be36-4a9f-b1f8-4bd7f8be4cc2", "created_at": "2025-05-19T19:10:35.366530+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"redacted_contents": "** Value redacted: Requires permission baremetal:volume:view_target_properties access. Permission denied. **"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8943c305-be36-4a9f-b1f8-4bd7f8be4cc2", "rel": "self"}, {"href": "http://localhost/volume/targets/8943c305-be36-4a9f-b1f8-4bd7f8be4cc2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_lessee_member_cannot_get_vendor_passthru_methods [0.195555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a8ec5775-3f3e-406a-b86a-46bc37f70513 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.093035s] ... ok {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.076230s] ... ok {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.083976s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_lessee_reader_cannot_get_vendor_passthru_methods [0.287267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-313952f0-fa07-4c99-bfe4-2b61b05c3327 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_symlink [0.071831s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.349688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/b929c90a-81c0-4ad2-b3e4-d46f0f94b49b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-64a87d40-45b7-43ce-b2d9-9740b58ecda2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.423281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.097025s] ... ok {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.074845s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_owner_admin_cannot_get_vendor_passthru [0.249127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d60c6a99-8d7e-40b9-a8a7-c6eb35a8c68d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_blocked_path [0.083321s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.260966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/be26a77a-6fac-4bd2-9ef5-dd40b892b1a6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1c47fa7c-e63e-4aa8-a1cf-c114697c6f26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target be26a77a-6fac-4bd2-9ef5-dd40b892b1a6 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_empty_allowlist [0.092064s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_owner_manager_cannot_get_vendor_passthru [0.180438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-21a77192-8e97-45ef-acf2-3cafe8f65c29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.169380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/d4b53efd-1fb5-4570-8aba-c24e35f2fde8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-31704640-b6bb-404e-91c6-86a594b2249d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_in_allowlist [0.107224s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.470479s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_not_in_allowlist [0.085597s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_owner_service_cannot_get_vendor_passthru [0.188783s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-24a136ce-1baa-4dce-845c-117576e896a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.098290s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.209183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/09073616-6db1-4cdc-b070-56d10b60eb8e GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b45ad0c5-e98c-456f-9c44-6e61a842edc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_owner_member_cannot_get_vendor_passthru [0.182254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-aeb7d073-1122-44c7-aa23-ef6f18a456f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.266437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.185208s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/52f54185-232a-4c08-8a73-c8dab08d6873 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8ce2d4db-38b3-44ff-8718-ae739c500b0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 52f54185-232a-4c08-8a73-c8dab08d6873 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_inspection_rule.TestInterpolation.test_variable_interpolation [0.217877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_reader_cannot_get_vendor_passthru [0.169687s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d52d9582-b0e2-4467-bd22-fb350ed27a16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_get_method_masked [0.145388s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.169565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/f60f58d8-d004-448a-abc4-c64cecdcccc7 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef0b722d-6923-4719-acf1-3bfa57aa7d7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.254446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_masked [0.117037s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_lessee_admin_cannot_get_vendor_passthru [0.188776s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4033819d-b49f-441c-a487-00ec5ef1f5d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.171528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_not_masked [0.115655s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_admin [0.250097s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-041c855e-b566-4ba4-a4e6-e3498cf286c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_items_masked [0.113399s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_lessee_manager_cannot_get_vendor_passthru [0.272608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dc499981-3db8-4725-a95b-9488c2ba438e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.207284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_member [0.195275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ee1e439-2bd2-4466-a150-c37e9cd5b8d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_list_masking [0.153839s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.193775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_lessee_member_cannot_get_vendor_passthru [0.243684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-01c5ef1a-e0d0-454a-be01-a4b899c5b2fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_modifying_dict [0.174576s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_get_observer [0.240557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c9facfc-0c00-4b40-9219-6260dabe5a4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_nested_dict_masking [0.146381s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.281459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_reader_cannot_get_vendor_passthru [0.249660s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f8b160e3-7e4f-49da-b8d1-e9c0be330ffe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.272454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-91c33b3b-f7e6-4770-8a6b-65d8528f5c64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "0c032f12-46ee-4e40-9931-0110ec544f56", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0c032f12-46ee-4e40-9931-0110ec544f56", "rel": "self"}, {"href": "http://localhost/volume/connectors/0c032f12-46ee-4e40-9931-0110ec544f56", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_set_mask_enabled [0.142479s] ... ok {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_values_masked [0.124638s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_owner_admin_cannot_post_vendor_passthru [0.293738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-51c973bf-b88b-438f-a754-9da1f11df5e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.281098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ee04bc2b-4004-48fb-baa3-b1b763e6555f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.155414s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.525385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.140638s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_owner_manager_cannot_post_vendor_passthru [0.293349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-734093ed-fef9-4412-9489-a4e7800f4721 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.303273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-886f67ca-ca11-43df-8253-c62d1e793254 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "eb090b9f-fc08-4cec-8113-b0a8302c358b", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/eb090b9f-fc08-4cec-8113-b0a8302c358b", "rel": "self"}, {"href": "http://localhost/volume/connectors/eb090b9f-fc08-4cec-8113-b0a8302c358b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_allowed_role [0.153289s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_post_vendor_passthru [0.248532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-65aa8dc0-62f4-4425-b12a-a648c5948217 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.176810s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5365c43e-3bd2-4c76-9bb2-280281e80e77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "418afc18-dd68-4351-bbe4-4d3ac2359654", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/418afc18-dd68-4351-bbe4-4d3ac2359654", "rel": "self"}, {"href": "http://localhost/volume/targets/418afc18-dd68-4351-bbe4-4d3ac2359654", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_with_allowed_role [0.158592s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.373865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_member [0.126094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8351245a-ca23-4aac-9422-8d539305058a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.147053s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_member_cannot_post_vendor_passthru [0.245644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-627dd696-1b6c-4c79-9e31-5fb4cb4d31ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.133577s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.173735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc319644-89b6-4f5d-9eed-746767124373 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "eeda57a0-01a2-464c-a414-3733f86e51ec", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/eeda57a0-01a2-464c-a414-3733f86e51ec", "rel": "self"}, {"href": "http://localhost/volume/targets/eeda57a0-01a2-464c-a414-3733f86e51ec", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.376554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic [0.152904s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_post_vendor_passthru [0.250587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9c47ba24-c668-4bfa-bafe-27e334af926c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_admin [0.188459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c019666-15a0-423a-9fcc-74e12a1e83a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic_not_authenticated [0.147857s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_lessee_admin_cannot_post_vendor_passthru [0.239485s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b14f0c6d-f826-4ff2-aace-549fa67a92e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.132073s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_member [0.260755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ade66cd-8927-4d01-9dc6-0f741a2eed17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.105325s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets [0.073662s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.061015s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_post_vendor_passthru [0.356872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43824242-2ef3-4e0c-8053-e546747c259e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.066226s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_get_observer [0.323727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c0e0e92-c418-4730-a35a-a3be2da8522d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.052524s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.087184s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_no_deny_methods [0.074147s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.080956s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_lessee_member_cannot_post_vendor_passthru [0.375408s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d8b65165-5b2b-42f6-9ca5-6db00f5b117a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.111180s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.086375s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.061891s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.059612s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic [1.319716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_lessee_reader_cannot_post_vendor_passthru [0.319943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ad240086-e3e5-4fd0-8d78-3437f9f80610 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_add_auth_opts [0.068227s] ... ok {3} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_os_service_types_alias [0.066510s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.314433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_owner_admin_cannot_put_vendor_passthru [0.318593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ed0837ec-630f-4955-be1c-56294581a9e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.242218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.194651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_admin [1.183540s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ba80cf42-3ddf-4c0e-8eee-1590e81bcd1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.225443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_member [0.140585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b2b1082e-8dd1-44b1-98e9-ba51c7e6eb74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_owner_manager_cannot_put_vendor_passthru [0.371825s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4dbe1921-bc93-468d-a101-fa22f6716030 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_driver_name_get_observer [0.116331s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-baf90e2f-7ef9-40cc-8375-14387cb56d46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_admin [0.165912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aa0a9f29-1762-45f1-b5ab-2b9ea543824a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.524375s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_229_owner_service_cannot_put_vendor_passthru [0.319145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1c2d008b-bdb0-489a-88aa-4e490ba73898 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_member [0.120502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b5e3062c-e246-480c-9fec-988d97f36719 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_properties_get_observer [0.138787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-27b561be-3371-457d-8790-d6e2a776cc05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_owner_member_cannot_put_vendor_passthru [0.241918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c5f7a70c-9448-4f85-a199-aa1a0a7192dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.769200s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.380439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.248417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-11f05301-9003-4bf1-8e4e-b4fb62500068 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.114165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_reader_cannot_put_vendor_passthru [0.227236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-508f7c3f-036a-4b53-9d6a-0edc6b256232 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.131311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.224818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-39189734-c985-4d77-a518-f4951393f09c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_lessee_admin_cannot_put_vendor_passthru [0.314858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-397e6877-10b4-41c4-957f-cd5d62f42c36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.481935s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.345353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0aee66ee-1f16-41e8-8f5c-e87a9ac8d186 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.452333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.063445s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_put_vendor_passthru [0.374978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d89a771a-3e9c-4b32-a3f7-67c576ad4631 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.089548s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.349130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.099323s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.285802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5fecbf2a-2da1-480a-9e13-62c0ccd681b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy [0.177742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.093879s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_member_cannot_put_vendor_passthru [0.211018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-70adfe0a-1574-451c-823f-4393e5e7db60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.134321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e7db3d15-1b85-4da3-a7e1-0eb64b8ea3f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.105759s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.165895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.058325s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.146894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a1e1d8d1-0d7a-4863-bf92-7ea5f9e76bfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.047746s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.043268s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.126506s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-986bdb22-400c-4e50-b6f6-fefcf87a486b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.050374s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step [0.154238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.053017s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.043209s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.147536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a0b48a7-bddd-4e66-9212-f9325fd99765 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.056684s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.207267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.055648s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.050375s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.120167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7232ac97-50de-43c6-bfa5-a47d068833f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_put_vendor_passthru [0.597645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-12c3b490-bff3-497b-b33a-c203160a85f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.086426s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_owner_admin_cannot_delete_vendor_passthru [0.121249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5fe57f58-5743-41c1-b1f0-6ae05b0a8980 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.149066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6fff6568-dc29-4d5b-9ff4-247aa461a00e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.096498s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy [0.284086s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_owner_manager_cannot_delete_vendor_passthru [0.096948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f19a6a45-100c-45c6-8aa7-92c894dee685 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.067839s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.107015s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b557160-d2e5-460c-8607-3f2e527b9de2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.066280s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.108401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5a35df9b-1f30-4f06-88fc-43c83b909fa6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.069118s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_service_cannot_delete_vendor_passthru [0.160553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-784fd515-9fd6-4d5d-8344-2fb3e0413b0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.076318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bbb104c0-c56c-4809-934e-5198a691357d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.069727s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_member_cannot_delete_vendor_passthru [0.115353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-51f9f75a-4d75-4909-b23b-e4d0025aed23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.105026s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-67820077-d5ba-4ffb-a0f2-25012adba209 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.104565s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.387491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_reader_cannot_delete_vendor_passthru [0.141100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bf802dd9-c5ea-4abf-bae1-a236355f31db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.079992s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.146551s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-59c68b21-63f3-457a-b53a-7c426fe8c2c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.092768s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.068598s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_delete_vendor_passthru [0.176857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fe31df6f-0a43-4164-8527-30749a06b4bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.056144s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.342586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.103422s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_admin [0.134375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95ec8911-f755-4495-b550-83c24b3c14c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-19T19:10:44.371238+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_lessee_manager_cannot_delete_vendor_passthru [0.213491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-73ad901f-c392-4733-8874-b941219a7cf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.062555s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.045064s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.033592s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_member [0.099812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f299c7e0-7bc2-47a1-864d-de7bf1397022 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.046830s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.040934s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_get_observer [0.082470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-805b82fd-91ea-4cbc-b12a-6ff8ac6c3d16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-19T19:10:44.556716+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.292370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.042349s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_delete_vendor_passthru [0.220772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9dc0b537-e716-443e-9c7a-faee60519e9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.038048s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.088341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b53009f1-4523-419a-8a3f-38d79f00e86c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-19T19:10:44.650784+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.026148s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.061659s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.074513s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-be79115e-6091-4b86-9755-5be1c301db0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_reader_cannot_delete_vendor_passthru [0.148104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e200a3b2-c683-405c-bdbb-cddf890d0c5d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.035915s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.054862s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.076184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78178a9e-1659-4d58-a5c7-c6b429f28466 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-19T19:10:44.811590+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.280052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.044763s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_admin [0.068007s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa413fce-d91f-4fe5-b40c-9e139d539bfd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing [0.040113s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_traits [0.168865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-640a897a-9214-4abd-9091-6f99de97804b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": []} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.053238s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_member [0.079157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-55665ec5-6695-44a5-9d7f-85b6cb0a312e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.122074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.038696s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_get_observer [0.064920s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e46d9ce-61d3-4ed6-97b8-1b0e117c9eb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.062200s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_owner_reader_get_traits_service [0.176145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10321f96-dfe9-4c75-b0a7-62303d9b9848 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": []} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.123333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_admin [0.079247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbba408c-fbcb-4809-8e73-c6a3fef5882a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:10:45.111252+00:00", "updated_at": "2025-05-19T19:10:45.111832+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.062426s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.021769s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.021607s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_member [0.055036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a3a90f8-2b64-486b-b039-04a147a4022f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.029224s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.039107s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_conductors_hostname_get_observer [0.074544s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6be5198c-5cfa-4476-be04-7ed15f461195 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:10:45.247613+00:00", "updated_at": "2025-05-19T19:10:45.248152+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_lessee_reader_get_traits [0.148963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc86902f-1d38-4a7c-9500-c1987b371d18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": []} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.022158s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.034709s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.079515s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.282194s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_admin [0.159298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e16e92b1-788c-45b8-85ce-4c29aab5c056 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_third_party_admin_cannot_get_traits [0.164042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b5336946-eac1-4e7e-ab92-f37e9545294c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.056229s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.050190s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward. {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.046079s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_admin_can_put_traits [0.135728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c0bb761c-11c0-45e1-994d-fc3636fea1ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.177304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.050102s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_post_observer [0.113290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e0a0c171-e420-4e9b-a20d-b49093630b6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.055721s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.027081s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_owner_manager_can_put_traits [0.127310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6d149176-75b3-49fe-afcd-f782a4a4f0e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.027963s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.025221s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_admin [0.093036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34301038-6099-4703-8424-064ef846f510 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "6cc8242e-4eb0-40cb-8e62-e78d10761504", "created_at": "2025-05-19T19:10:45.698804+00:00", "updated_at": "2025-05-19T19:10:45.703142+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/6cc8242e-4eb0-40cb-8e62-e78d10761504", "rel": "self"}, {"href": "http://localhost/allocations/6cc8242e-4eb0-40cb-8e62-e78d10761504", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.021686s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.018279s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.194345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.023389s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_member [0.064721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e6af100a-363e-492a-8c36-8245492ebc59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.022416s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_owner_service_can_put_traits [0.130224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a2c669dc-bff5-4b9e-ae66-44fa3f49a6b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_and_fails [0.024577s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.031828s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_get_observer [0.078695s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2ff9f05-58d0-4814-8b04-b952c36f0226 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "507e5165-72ae-4e74-bdf9-7db0c397ddc3", "created_at": "2025-05-19T19:10:45.853831+00:00", "updated_at": "2025-05-19T19:10:45.858804+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/507e5165-72ae-4e74-bdf9-7db0c397ddc3", "rel": "self"}, {"href": "http://localhost/allocations/507e5165-72ae-4e74-bdf9-7db0c397ddc3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.061950s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b59f6b8f-474d-49ca-b91b-b49534ef86ca WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4dcad304-2db4-4f0c-89af-e8355832775d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b59f6b8f-474d-49ca-b91b-b49534ef86ca", "created_at": "2025-05-19T19:10:45.930907+00:00", "updated_at": "2025-05-19T19:10:45.934650+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b59f6b8f-474d-49ca-b91b-b49534ef86ca", "rel": "self"}, {"href": "http://localhost/allocations/b59f6b8f-474d-49ca-b91b-b49534ef86ca", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.181260s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_cannot_put_traits [0.131916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-84e3e826-2117-4037-8fae-fa9f0938d5d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_member [0.081704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/07121ea7-61b9-4d18-81ee-0c1728fc5c21 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d274525-1b90-4b6d-8cec-56ee4a240855 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 07121ea7-61b9-4d18-81ee-0c1728fc5c21 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_admin_cannot_put_traits [0.131414s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b7b6c75a-33a7-4c18-a8e6-97d03dd1fa54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.082326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/aa6f3010-b79e-4042-9455-c5dc99fedb3c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-faa4c147-6c5b-4c5b-9b95-c5bd5effd6f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "aa6f3010-b79e-4042-9455-c5dc99fedb3c", "created_at": "2025-05-19T19:10:46.090245+00:00", "updated_at": "2025-05-19T19:10:46.094350+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/aa6f3010-b79e-4042-9455-c5dc99fedb3c", "rel": "self"}, {"href": "http://localhost/allocations/aa6f3010-b79e-4042-9455-c5dc99fedb3c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.248711s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.150461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.022844s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.022986s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.074400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a9b3f7b0-b0c1-4701-898c-32a3234d0691 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55a5a167-5121-4c42-83ea-788c4f852398 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a9b3f7b0-b0c1-4701-898c-32a3234d0691", "created_at": "2025-05-19T19:10:46.159260+00:00", "updated_at": "2025-05-19T19:10:46.200733+00:00", "candidate_nodes": [], "extra": {"test": "testing"}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/a9b3f7b0-b0c1-4701-898c-32a3234d0691", "rel": "self"}, {"href": "http://localhost/allocations/a9b3f7b0-b0c1-4701-898c-32a3234d0691", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.070238s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.042804s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_lessee_manager_cannot_put_traits [0.116999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2eda1e46-dbc1-4c53-a0c7-06cd2538c0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.046006s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.066133s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.024358s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.108767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a1d51ad5-975b-4c31-8aaa-7ca9579af6c9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2379eff9-4d95-4676-9e85-9f23f2e1fa89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a1d51ad5-975b-4c31-8aaa-7ca9579af6c9 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.040392s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.059794s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_member_cannot_put_traits [0.126391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dbb27060-947c-4aa6-90fc-25ef852a26c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.050416s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.040366s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.054839s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_put_traits [0.153454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-76f4b228-f285-4750-a358-c928738c864b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.054872s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.020340s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.029075s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.043522s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.344038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/24568fd9-61af-4345-b843-31dea9cfff40 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a86c9a30-4251-4bc9-a9cf-2def06071cba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.038114s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.332051s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_257_third_party_admin_cannot_put_traits_service [0.152489s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6b6102cd-d5f0-4440-94f6-46e1c3dae900 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.036208s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.069100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/11bcb6b6-dd89-4855-896c-42fa98241b4d GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9ccd9a1c-3cf2-4537-9fb2-af0f598928c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.049253s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.089023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/46cb17d2-91ed-4f17-ba1e-ceab47ef77ba GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c8e87f58-c494-42cd-9e83-43d3cce331a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 46cb17d2-91ed-4f17-ba1e-ceab47ef77ba could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror [0.064880s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.156990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.056589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/defb8de1-d492-454d-a621-36d79529a37f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-52502f52-e77c-4108-ab5e-6db6c70a7023 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 [0.060210s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_258_owner_admin_can_delete_traits [0.200514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-54d2529c-ac7f-4a6a-956b-b9b5eead82b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.101967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 [0.066697s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_admin [0.108715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06b7207e-2489-46b9-bf11-b6677cc6dd14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a73036b7-c197-43b3-9b33-daf7b3eb5723", "created_at": "2025-05-19T19:10:46.942796+00:00", "updated_at": "2025-05-19T19:10:46.947247+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/a73036b7-c197-43b3-9b33-daf7b3eb5723", "rel": "self"}, {"href": "http://localhost/allocations/a73036b7-c197-43b3-9b33-daf7b3eb5723", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal [0.053539s] ... ok {3} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed [0.044512s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_member [0.083135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4ed82b8b-8c17-4623-8c69-2d6c0e620f8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.115415s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_259_owner_manager_can_delete_traits [0.192991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5dee7308-2f9c-4ae1-9c10-d27cd8af71de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.IsHttpUrlTestCase.test_is_http_url [0.045570s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_all [0.033970s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_get_observer [0.077226s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1065be91-3144-4ee4-b948-c8f66aac09ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "28010671-194b-43b2-ae6d-fc9e9a823dbf", "created_at": "2025-05-19T19:10:47.100750+00:00", "updated_at": "2025-05-19T19:10:47.104027+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/28010671-194b-43b2-ae6d-fc9e9a823dbf", "rel": "self"}, {"href": "http://localhost/allocations/28010671-194b-43b2-ae6d-fc9e9a823dbf", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_name [0.021375s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_none [0.022128s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute [0.024976s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked [0.135538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_owner_member_cannot_delete_traits [0.140130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-27c8ab1d-da32-4e2a-8186-cf6ee35d159a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints [0.026791s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 [0.020854s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_admin [0.134062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-32054ab8-324c-4af1-9583-e88cb8b0f6a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 [0.035683s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found [0.027484s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.133996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators [0.031715s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_261_lessee_admin_cannot_delete_traits [0.127330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-71cd5917-4843-4ab5-82a6-77562d282d5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint [0.022768s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational [0.020275s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_member [0.128191s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-87a9de8e-c5cf-4921-9ede-eb0f6bb5326c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool [0.021364s] ... ok {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_get_console [0.023314s] ... ok {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_authorize [0.036234s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.137841s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_manager_cannot_delete_traits [0.139604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5514cc4c-9c38-4aa4-a9bf-7b48bbf4a11f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_unauthorize [0.050726s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_nodes_allocation_delete_observer [0.136696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6d9be78c-e425-43ae-a5f1-39d687fa7958 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate [0.065068s] ... ok {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate_expired [0.027605s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.138783s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_lessee_member_cannot_delete_traits [0.128508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1d7311c3-c9a2-4ab4-82e3-bf185ed34712 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_token_valid_until [0.027623s] ... ok {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.049691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_admin [0.158002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/d8ccb12c-25c2-4ab5-aba8-a5de0f5306aa Openstack-Request-Id: req-cc3126ce-7b25-49d7-b0fe-10f50a5b868b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d8ccb12c-25c2-4ab5-aba8-a5de0f5306aa", "created_at": "2025-05-19T19:10:47.691569+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d8ccb12c-25c2-4ab5-aba8-a5de0f5306aa", "rel": "self"}, {"href": "http://localhost/deploy_templates/d8ccb12c-25c2-4ab5-aba8-a5de0f5306aa", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.038984s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.112016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_third_party_admin_cannot_delete_traits [0.139298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ec7fdde2-d90a-472e-82b4-1adb887dd798 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.077631s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_member [0.133194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1ac48db8-f434-4a7e-8d14-59a514ffa377 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.099417s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.047319s] ... ok {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.032873s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_265_owner_admin_can_put_custom_traits [0.140282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-66d61bc8-cf21-4b4d-889f-a551ebdf6b6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.059351s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_post_observer [0.147187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d244948a-f301-4ce2-ae79-a31276a2e6d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.052913s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.165363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_owner_manager_can_put_custom_traits [0.144084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-857a73dd-89f2-41f7-b895-cae8d07efcf3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.053923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.079776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_admin [0.134556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-605efe96-8280-4bce-94de-47534f07b6f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "e51e11c9-2217-45d4-96c6-f57a09111210", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/e51e11c9-2217-45d4-96c6-f57a09111210", "rel": "self"}, {"href": "http://localhost/deploy_templates/e51e11c9-2217-45d4-96c6-f57a09111210", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.068758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.084736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_member_cannot_put_custom_traits [0.147709s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-076757c1-b5bc-40a9-ac57-b523f2dd3943 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.087712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.087084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_member [0.160621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-166ed0ca-b2f1-4cd0-a063-90e91d800e3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.070045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.071335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.083694s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_cannot_put_custom_traits [0.181777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b829d3eb-3c13-46fa-aa4a-3b7aff756b2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_get_observer [0.157956s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc28f0c5-de48-4fed-bb06-44ce09e67905 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "d8a092c4-bdd5-4885-b0ac-f66fa66d68a0", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d8a092c4-bdd5-4885-b0ac-f66fa66d68a0", "rel": "self"}, {"href": "http://localhost/deploy_templates/d8a092c4-bdd5-4885-b0ac-f66fa66d68a0", "rel": "bookmark"}]}]} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.095607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_cannot_put_custom_traits [0.132268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d12beb1b-c655-4252-82fe-31130535583d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_automated [0.106482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.128334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/c9cc75c3-d3ad-4853-a893-24308ede42d0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-230b1fae-19da-4049-b734-844796eca161 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c9cc75c3-d3ad-4853-a893-24308ede42d0", "created_at": "2025-05-19T19:10:48.521942+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c9cc75c3-d3ad-4853-a893-24308ede42d0", "rel": "self"}, {"href": "http://localhost/deploy_templates/c9cc75c3-d3ad-4853-a893-24308ede42d0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_put_custom_traits [0.138007s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-220cc6e5-6b3b-4635-8b5c-0d6aa76ee7ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_manual [0.110268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.125770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/01f63caf-5918-4f00-b529-3450f8f6fe51 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9f5d5635-054f-4fd1-aec8-22939bcbfdee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.335896s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.032275s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.032611s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.117326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_put_custom_traits [0.136487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fc99fee3-f4c5-4e04-873e-bea9d4623f65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.039919s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.134496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/dbd1f104-0b3b-4bef-8779-a58dc50b124c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02e83256-3421-4bb4-af19-9a27db832cea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dbd1f104-0b3b-4bef-8779-a58dc50b124c", "created_at": "2025-05-19T19:10:48.782493+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dbd1f104-0b3b-4bef-8779-a58dc50b124c", "rel": "self"}, {"href": "http://localhost/deploy_templates/dbd1f104-0b3b-4bef-8779-a58dc50b124c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.034448s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_get_vifs [0.139560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3a5eea3e-0f49-4ee0-9aa4-49c7ddf5e734 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state [0.133202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.196013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/81b7f8c6-1a57-45de-afc0-57959799f660 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da78d1f0-30b5-43d2-bc1d-8c8f5540e263 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "81b7f8c6-1a57-45de-afc0-57959799f660", "created_at": "2025-05-19T19:10:48.915710+00:00", "updated_at": "2025-05-19T19:10:48.999463+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/81b7f8c6-1a57-45de-afc0-57959799f660", "rel": "self"}, {"href": "http://localhost/deploy_templates/81b7f8c6-1a57-45de-afc0-57959799f660", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token [0.313555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance [0.131999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_get_vifs [0.205175s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0c62caa6-483f-441c-9252-de65f06a513a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token_older_version [0.098463s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.198997s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/c479156c-3308-4cd6-b2ba-83335c208354 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8309e43a-be64-4992-8f7d-2ec47ee96777 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.125659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_get_vifs [0.162261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-70b4e185-6d34-40bc-8d29-bf094ded30c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.111826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.119600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/1176d55f-65da-4e0f-b298-aca954b9f7c6 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-55c2f674-e939-4525-ad40-7c0611a8b5ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.153747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_tls_required [0.088358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_admin_can_post_vifs [0.143762s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5173836d-9044-4dfd-93e1-b6b40114f804 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.137246s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/68dad21a-d79d-4d4b-aff3-e7e42b58280f GOT Response: 204 No Content Openstack-Request-Id: req-f0b9de53-a870-4294-8fda-80ee5840019e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_token [0.096402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.177185s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_verify_ca [0.089782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_service_can_post_vifs_for_own_project [0.179316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-000a32d3-8c30-415a-a7f5-2dd0b5b84735 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.168519s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/96333783-67c0-4a7a-ac9f-a4901fbfa9d4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b939a31c-ffc9-4f94-94f8-84f1e8ef1ccc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_version [0.091197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.190641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.098856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_service_cannot_post_vifs_for_other_project [0.186293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1690514a-7141-40c5-95c3-bda78a5dd3d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.172528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/aa8ffd1f-7a5f-4559-af3b-e0b86c8e56a7 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-46868ba1-be1b-414c-94f3-76bf7965301f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_required_agent_token [0.084648s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.131685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.060049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_manager_can_post_vifs [0.184886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d1a35392-6731-407c-a065-b9e9f5199da7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_agent_version_anaconda [0.133872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_admin [0.169594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/a6d6ec81-1334-4028-9ba7-35d9b75c6908 Openstack-Request-Id: req-f3694a66-0478-4c4d-b5a3-41e69299ebc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a6d6ec81-1334-4028-9ba7-35d9b75c6908", "created_at": "2025-05-19T19:10:50.036480+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/a6d6ec81-1334-4028-9ba7-35d9b75c6908", "rel": "self"}, {"href": "http://localhost/chassis/a6d6ec81-1334-4028-9ba7-35d9b75c6908", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/a6d6ec81-1334-4028-9ba7-35d9b75c6908/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a6d6ec81-1334-4028-9ba7-35d9b75c6908/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.096259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_early [0.045285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_lessee_admin_can_post_vifs [0.139499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1731b037-873c-4e2b-9205-f98973ac4cfc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_version [0.148372s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_with_step [0.053337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_member [0.130396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1ade719a-f817-4bb3-8cd2-a5ef2b6fc3cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.027153s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.024827s] ... ok {3} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.060490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.042728s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.033359s] ... ok {3} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok [0.073541s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_post_observer [0.144548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9d740421-0a84-40ab-bb9b-03f48fb5e86d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.034028s] ... ok {3} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok_asynchronous [0.056257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.028049s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.035762s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_admin [0.096285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67883ccd-5b94-42f8-88f8-9889231177da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.066393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.068769s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_member [0.061174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2db74d85-2e03-4e91-99df-81cfb5c9f307 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.060836s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif [0.109637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_get_observer [0.072340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-829d0b3c-5a82-4466-9363-72a2ff8211c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present [0.060528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.085014s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_admin [0.069688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba5e4862-22de-43ba-951c-0ce3daf048b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:10:50.599854+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_member [0.064553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-972e40bc-d3d5-48c4-8642-4103b1aa8602 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.066065s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.100151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.058006s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_detail_get_observer [0.065549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54e2b079-bc55-4b8e-8b5f-8682d398425c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:10:50.733871+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_lessee_manager_can_post_vifs [0.635121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-501a8842-a187-4767-9f91-bcfe22e15e7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.086277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.057683s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.079952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b845fb69-0e68-43fc-a0d7-0f665d2940fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:10:50.802927+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked [0.066881s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.053873s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.055858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_owner_member_can_post_vifs [0.143961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-80486b7e-9a0b-4d86-9fad-2337e192ee34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_member [0.110414s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-89cf6568-b920-4646-b663-62816a1b0c00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.090215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.076505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b0b1e63-84e5-4fb5-a9b0-520ec0d16c69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:10:50.999899+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.198616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_member_cannot_post_vifs [0.123560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2ca1b40c-e09e-4dd8-842c-7337506c70c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.093840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.098074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa1fc974-145a-4b16-8d2c-161b36710bf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:10:51.074726+00:00", "updated_at": "2025-05-19T19:10:51.114970+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.094563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.086449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dc0c8b67-9101-466b-8644-d68378f0c759 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.151684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.052744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_owner_reader_cannot_post_vifs [0.165023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a0646eb7-a120-43f7-8863-7553f3255447 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.084048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8ee38d97-e9be-46f3-96a3-11af0c8f217a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.060580s] ... ok {3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.042618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.065059s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-e3d3941a-7ab6-4cdc-a6cb-92f10e7221cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.148600s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.073634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ff6a9a9-60aa-4e0a-9ea4-d1393eec32e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.095107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_lessee_reader_cannot_post_vifs [0.229194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b3413bdb-0c3c-4d5d-8069-6e127979edcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.091798s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c7828b64-f8af-43bf-b0df-ad80b3395d23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_third_party_admin_cannot_post_vifs [0.118980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1688bfdd-6260-4ae5-8e0d-d6eaaf391c35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.220636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.030498s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_admin_delete_vifs [0.066928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-eb30d9cb-027d-4e3f-9512-c53501acdb6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.038893s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_admin [0.176449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-97cf7976-4b9a-4efe-a663-6371c0623ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "c2639899-b612-4cb3-907b-de5c0436b786", "created_at": "2025-05-19T19:10:51.670741+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c2639899-b612-4cb3-907b-de5c0436b786", "rel": "self"}]}]} {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.052413s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_manager_delete_vifs [0.089132s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-19c5fddc-5141-4706-9838-d919ab98818b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.028596s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.341456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.041078s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_can_delete_vifs [0.065482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-02c2530e-4acd-48d9-89d9-de8ef1d9b944 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_drain_has_reserved [0.047602s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.035953s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.108789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_can_delete_vifs [0.087291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4907e526-0aa9-4a5b-b00c-4175f7e210fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.089965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_owner_member_can_delete_vifs [0.078603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-23ea423f-4542-4182-81d7-0b6d66ff124e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_lessee_member_cannot_delete_vifs [0.163874s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-982d8372-1bbf-4529-969e-e31cf89d981c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.176394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start [0.331904s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_member [0.560749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d44602b3-b974-4b21-a34b-6317fba022a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.114262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_failure [0.068117s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_third_party_admin_cannot_delete_vifs [0.154726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dd22cd79-3277-435c-8b51-69bab48e3d33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_no_rpc [0.053726s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.026023s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.100436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_service_can_delete_vifs [0.083605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-54774286-eae1-4576-b565-cf2f57a5e3a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.036256s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_observer [0.160546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19a0d386-3ecd-4b11-bd96-166656149c1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "5d60f47c-5520-412c-a815-14964aec63df", "created_at": "2025-05-19T19:10:52.386227+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5d60f47c-5520-412c-a815-14964aec63df", "rel": "self"}]}]} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_has_reserved [0.039789s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service [0.073425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_instant [0.028520s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_service_cannot_delete_other_nodes_vifs [0.096626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-39f04bd0-b2f3-4a87-8103-75d4c603a8ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.040783s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.018851s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.020494s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_abort [0.105313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_admin [0.142112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/35ee6ccf-214b-42e7-bb6b-c996a998db2a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-798db7c9-385a-4cdb-8a70-c3eaed1492db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "35ee6ccf-214b-42e7-bb6b-c996a998db2a", "created_at": "2025-05-19T19:10:52.541580+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/35ee6ccf-214b-42e7-bb6b-c996a998db2a", "rel": "self"}]} {0} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.021943s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_owner_readers_can_get_indicators [0.122439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-50eeb849-1afa-4f7e-bdd6-ef25a437ab29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.088866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_abort_last_service_step [0.129377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lesse_readers_can_get_indicators [0.079309s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/indicators WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-74c40132-c745-4b1c-89f9-b72d29523a99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_member [0.139280s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f3d2285e-529f-418a-a89b-a1a48e8e0139 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-94e8d3a4-e6cc-4f2e-930b-ad490d5fdae9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_locked [0.106525s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.134542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_third_party_admin_cannot_get_indicators [0.136538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c12a5501-0968-4012-9756-51a962b83c8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_306_node_history_get_entry_observer [0.145585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/18fa1e5e-c7d1-4657-886c-171d2721c281 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b63b2d9b-919e-4f3f-a052-f341a6bd5918 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "18fa1e5e-c7d1-4657-886c-171d2721c281", "created_at": "2025-05-19T19:10:52.825638+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/18fa1e5e-c7d1-4657-886c-171d2721c281", "rel": "self"}]} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.057392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_worker_pool_full [0.080974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_owner_reader_can_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.101789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_wrong_state [0.105331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_lessee_reader_not_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.072448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_provision_action_unhold_service [0.101276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_owner_member_can_set_indicator [0.104087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators/component/magic_light WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-195b3e7b-1f9a-44fb-bcdf-af39e54e2f5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.097796s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service [0.091277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_lessee_member_cannot_set_indicator [0.082093s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/indicators/component/magic_light WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e0bd82c7-a068-491a-996e-b5b982ee34f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.254704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-70376b3d-294d-4389-bf76-01c34e427f82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service_maintenance [0.091755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_third_party_admin_cannot_set_indicator [0.076718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/9bee7ca9-d138-4b2e-9551-102cab5c4280/management/indicators/component/magic_light WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-165c5d89-8030-4464-b6ff-af24ed4a964e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 9bee7ca9-d138-4b2e-9551-102cab5c4280 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service [0.141127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.059785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_owner_reader_can_list_portgroups [0.095708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bffc3b24-cfeb-44c8-a913-587303ff62a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "1bf4795d-a7d8-440c-b33c-de4d729eabe8", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/1bf4795d-a7d8-440c-b33c-de4d729eabe8", "rel": "self"}, {"href": "http://localhost/portgroups/1bf4795d-a7d8-440c-b33c-de4d729eabe8", "rel": "bookmark"}]}]} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_power_validate_fail [0.071152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.205701s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f62d00c1-c6f7-40d9-9632-8400b5377933 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.208283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_owner_service_can_list_portgroups [0.111911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99341611-99df-4468-85ec-f1b8ebfa1a15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "c87fd989-6c8c-497d-bd50-9137b3bb9cc6", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/c87fd989-6c8c-497d-bd50-9137b3bb9cc6", "rel": "self"}, {"href": "http://localhost/portgroups/c87fd989-6c8c-497d-bd50-9137b3bb9cc6", "rel": "bookmark"}]}]} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.080054s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.057821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.058641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [0.186938s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-73e46bb9-557d-47be-9b22-0a83cda52c9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_reader_can_list_portgroups [0.142903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82b26b2d-fee5-452c-b40e-3be4cd678df5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "fd8faef7-c93a-4623-9266-4eb3512eb532", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/fd8faef7-c93a-4623-9266-4eb3512eb532", "rel": "self"}, {"href": "http://localhost/portgroups/fd8faef7-c93a-4623-9266-4eb3512eb532", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.202517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.065951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_third_party_admin_cannot_list_portgroups [0.077124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66eb8312-c631-4d86-b65f-dff8a59c18cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.126910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-42e5314e-95c9-45ba-8e66-ff3b43bcc7da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.100463s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.097752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_owner_reader_can_read_portgroup [0.145196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67964f61-d0b0-4ef2-a67e-8207e553ee45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-05-19T19:10:53.813906+00:00", "updated_at": null, "address": "01:03:09:ff:01:01", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "magicfoo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.141429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5dd4518d-0ca4-40aa-9385-e66267ec74c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [0.134907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_lessee_reader_can_read_portgroup [0.071599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/1e64be76-09c9-4f90-ab30-6528a7ce94b3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b582b4f2-acc8-4371-8ee1-00d329a29510 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1e64be76-09c9-4f90-ab30-6528a7ce94b3", "created_at": "2025-05-19T19:10:53.911121+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "links": [{"href": "http://localhost/v1/portgroups/1e64be76-09c9-4f90-ab30-6528a7ce94b3", "rel": "self"}, {"href": "http://localhost/portgroups/1e64be76-09c9-4f90-ab30-6528a7ce94b3", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/1e64be76-09c9-4f90-ab30-6528a7ce94b3/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1e64be76-09c9-4f90-ab30-6528a7ce94b3/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_fail [0.148643s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_third_party_admin_cannot_read_portgroup [0.065713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-545a4fab-fe40-46b9-addb-182cf61c4795 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.129467s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7cafd607-d189-4aba-bd60-70b3f84d6a06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_wait [0.110898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_can_add_portgroup [0.077808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/4e20602b-5ce2-4686-bf36-ac6d3debd22c Openstack-Request-Id: req-578b46b8-b1be-4616-81f6-9a6267eff26b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4e20602b-5ce2-4686-bf36-ac6d3debd22c", "created_at": "2025-05-19T19:10:54.079194+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "links": [{"href": "http://localhost/v1/portgroups/4e20602b-5ce2-4686-bf36-ac6d3debd22c", "rel": "self"}, {"href": "http://localhost/portgroups/4e20602b-5ce2-4686-bf36-ac6d3debd22c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/4e20602b-5ce2-4686-bf36-ac6d3debd22c/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4e20602b-5ce2-4686-bf36-ac6d3debd22c/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.165862s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_service_can_add_portgroup [0.077382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/e7f2ef7c-1a16-4940-bd32-1600e2d21c41 Openstack-Request-Id: req-c9da54a0-e8be-4bf8-8900-59846aa2e3a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e7f2ef7c-1a16-4940-bd32-1600e2d21c41", "created_at": "2025-05-19T19:10:54.159362+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "links": [{"href": "http://localhost/v1/portgroups/e7f2ef7c-1a16-4940-bd32-1600e2d21c41", "rel": "self"}, {"href": "http://localhost/portgroups/e7f2ef7c-1a16-4940-bd32-1600e2d21c41", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/e7f2ef7c-1a16-4940-bd32-1600e2d21c41/ports", "rel": "self"}, {"href": "http://localhost/portgroups/e7f2ef7c-1a16-4940-bd32-1600e2d21c41/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.122705s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6b0888e0-5276-406e-9fa5-b16a31dd656d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.146899s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.123019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_manager_can_add_portgroup [0.093081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/9fc64652-9570-4572-b147-7dec9e883e1e Openstack-Request-Id: req-2114f8a1-b3c0-40a1-b0bb-a23ebc92e68c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9fc64652-9570-4572-b147-7dec9e883e1e", "created_at": "2025-05-19T19:10:54.252111+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "links": [{"href": "http://localhost/v1/portgroups/9fc64652-9570-4572-b147-7dec9e883e1e", "rel": "self"}, {"href": "http://localhost/portgroups/9fc64652-9570-4572-b147-7dec9e883e1e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/9fc64652-9570-4572-b147-7dec9e883e1e/ports", "rel": "self"}, {"href": "http://localhost/portgroups/9fc64652-9570-4572-b147-7dec9e883e1e/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.085576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.131150s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9904c136-e242-479e-846c-ac26bf3ffcce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.100067s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.041325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_owner_member_cannot_add_portgroup [0.077140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-521a76cc-607a-4f38-90a6-32ead295550f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.100362s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.134159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-720857d4-718f-45e3-9b9c-d6d563a98af8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_admin_cannot_add_portgroup [0.106196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec3620e5-ae40-4a76-b191-6dee06a65678 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.113386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.074407s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_manager_cannot_add_portgroup [0.068747s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-92a83ef5-ac9f-477c-9e3a-9a70e7f6b614 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.146754s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.173534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0eada3a0-6dd2-43cb-8eaa-d605197099e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.125835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.062674s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ad581da7-db5b-4876-8a69-b5e92930b17c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.131044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.066744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7d8f6620-b52d-42ff-b72c-694eac607566 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_lessee_member_cannot_add_portgroup [0.234001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-88f66cc8-3d56-46bd-989f-4cc58fddf65c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.063842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6eeb5972-3a55-4af1-8984-3cb2acbfd9e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.143565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.082958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ddc1163a-ffb3-425c-8e9c-907babab5a61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state [0.299121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_third_party_admin_cannot_add_portgroup [0.183988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-da466564-a8ea-43d5-9051-2c56fd05b3ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.067103s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators [0.032285s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.084330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-edd8cf98-e07a-41ef-8d2f-732188ec6c1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state [0.042517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.021863s] ... ok {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.092252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.030431s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.078637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8d990f75-4ffe-43a3-aa79-b84837cdc369 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.026935s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_admin_can_modify_portgroup [0.163859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7be4f39c-bf25-40be-b54a-18dbc8181135 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.022117s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.030051s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.027714s] ... ok {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.141892s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.037175s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.152457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eff3ad12-3adc-4779-adbf-60ab63bd9ce9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.024901s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_manager_can_modify_portgroup [0.140834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9a49dc61-df70-451c-bf33-b6add98bac86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.032114s] ... ok {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.115959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_owner_member_cannot_modify_portgroup [0.107430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3e0b0150-5c92-42c2-a22a-cdc721d31073 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.128786s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.197085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9bf80017-e0ff-4397-b368-072f2368c6b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_admin_cannot_modify_portgroup [0.086313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6e9ef7d5-6e25-4d9a-9877-dab130980b5c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0ef3cc8-82a2-48ab-b9cd-dd87627e7bda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.080289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.159772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_manager_cannot_modify_portgroup [0.087083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/c97b14a8-375a-4d5e-a1d9-2581b2dbe3f8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f9f93139-1a7f-4970-8f7e-952c21b3beba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.169998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5aec627f-7fcc-4894-b60f-521b370ac7f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.126141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.117955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_lessee_member_cannot_modify_portgroup [0.091607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/225c563b-5dfe-4242-b11f-7d3df2b2746e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4982666a-f041-4410-bc55-477c6da6b73b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.107716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.129829s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2a6a94d2-1824-48ea-bc6a-cfd8d819b5d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.104638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.114970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.137272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.131171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-85d287e6-8b07-4472-868a-8c7b9438769d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.100108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.126895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-753ab234-3f5d-47c3-bcb4-83c61814b388 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.156563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.036298s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.039024s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_third_party_admin_cannot_modify_portgroup [0.485906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/d4944b65-3a6d-4479-b4a2-16d453b39df4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-50a5fa1b-043d-41f5-b2ea-cba95400d6db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup d4944b65-3a6d-4479-b4a2-16d453b39df4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.148654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-27dce43b-761a-40e4-94a3-8062963a6d63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.049759s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.029436s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_admin_can_delete_portgroup [0.093676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-462a4dec-ffaf-45fa-936d-97bb9353e3f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.075313s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.151113s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-47286856-1f2a-4772-aab9-75794532950f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.051445s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.146724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bd1a4d14-5c1e-4089-b3e4-18ce07d2afea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_manager_can_delete_portgroup [0.234933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c81fdf9f-36f2-4fb3-91de-d1579d1ec4b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [0.529674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.215444s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.129116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-77561907-88ec-4d80-b0b3-c2f71034a317 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_owner_member_cannot_delete_portgroup [0.095736s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ae9150b8-8d66-4ac1-92ca-0e5de4b20877 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.072824s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps [0.089909s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.044771s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.034939s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.078932s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_owner_service_can_delete_portgroup [0.126953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b13f36da-fe25-457f-bbac-ca7c5c2faf09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.152850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3a4903f9-89ba-4f99-a73c-60d4506fe5af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.050987s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps [0.119432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_admin_cannot_delete_portgroup [0.144811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6f966529-ce28-4edf-b370-582698b721f3 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-250ecf21-a849-4312-ab93-a97bb797671c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.134226s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.155014s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2920427b-60e6-481c-965d-e3392e089e61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps [0.091254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_with_disable_power_off [0.053423s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.027506s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_lessee_manager_cannot_delete_portgroup [0.108669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/3d0eefe3-a089-4ec2-852b-ae1b20a92599 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5d0cb831-7df2-432a-b9f8-61f38ff13d12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.069098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.136323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-91e2f051-b5aa-44f0-b3da-3aacb024d56d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_lessee_member_cannot_delete_portgroup [0.101784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/70f17317-ee74-43bd-a41f-5d3ed1d4a78f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-47124899-08ec-4ac9-89a6-5dbb09dd6854 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.112645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.104087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-de9d9e1f-2286-44ac-ae4e-f90bac922c11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.068429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1a06c92d-ec37-41d9-ae0b-8bd78acd56db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.273910s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.108639s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_third_party_admin_cannot_delete_portgroup [0.173605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/58465d24-775c-43a9-91cd-b756feb4d76f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-41d77fe1-5f06-4120-a8e8-102f3b85200a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 58465d24-775c-43a9-91cd-b756feb4d76f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.058085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ff7f55d1-2227-4363-962a-2c8ced6e13e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.035479s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.032120s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.025788s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.079859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0cb78317-13b9-4201-9761-621f897ae321 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.112588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.030695s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.046045s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.068858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7c550ff0-2e43-468b-a000-939afb341076 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.043510s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_service_cannot_delete_portgroup [0.222058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/fab575cf-23bf-4e5b-8c29-58c91d5e6363 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dabd9771-d43e-4630-9d80-4dac456d38c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup fab575cf-23bf-4e5b-8c29-58c91d5e6363 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.071124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2798770-ef89-4ebe-9ccb-05fc3d37e5e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps [0.136891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.091915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.077088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eabe9860-3682-4b1b-abe6-754f63e3ed19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.082646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.066826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0acd0dc3-cfcb-4476-b9cb-950ea6af551b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.138039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_node_portgroups [0.162142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11c968ca-0ae7-4e66-b74a-fdf486040972 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.084018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-25540f66-f406-42af-a2d9-6499ce7e97cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps [0.083559s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.123782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_node_porgtroups [0.105432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c330aeb-c517-4f4d-8bc9-6089014261b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "908aea9b-0f92-4eca-879f-e193c0ee7b00", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/908aea9b-0f92-4eca-879f-e193c0ee7b00", "rel": "self"}, {"href": "http://localhost/portgroups/908aea9b-0f92-4eca-879f-e193c0ee7b00", "rel": "bookmark"}]}]} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing [0.082045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_portgroups [0.113365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b78ed467-cbea-4473-944f-6eca893117fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps [0.093496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_service_cannot_get_portgroups [0.109424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fb2ca8db-e1ef-44fc-bd3c-6288eb417a91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.228244s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.081135s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.288619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a2923b7b-c8a5-43eb-8a20-56eebbca3026 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps [0.063146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_owner_reader_can_list_ports [0.095842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4c243f1-1874-4736-822d-f762c6fd940f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "ff08a74c-4c84-4c56-adb8-e15f32478d07", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/ff08a74c-4c84-4c56-adb8-e15f32478d07", "rel": "self"}, {"href": "http://localhost/ports/ff08a74c-4c84-4c56-adb8-e15f32478d07", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.081817s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4809b3c-a465-4a34-b7ea-0f3f31713cde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.063017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.049957s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_can_list_ports [0.099311s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8eb3de95-8d6a-40ba-bf11-20e08e1108d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "4ae1c4f5-0896-4f8f-8993-9a58d7b4bbd9", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/4ae1c4f5-0896-4f8f-8993-9a58d7b4bbd9", "rel": "self"}, {"href": "http://localhost/ports/4ae1c4f5-0896-4f8f-8993-9a58d7b4bbd9", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.208473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.085670s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.176292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-62e0029c-aadb-42ef-90ac-d7a8d36a8942 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.087724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_lessee_reader_can_list_ports [0.211275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d2e6c99-79ed-462f-acc1-35d5a5d38440 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "7baa9538-c925-474c-b313-319817fd3376", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/7baa9538-c925-474c-b313-319817fd3376", "rel": "self"}, {"href": "http://localhost/ports/7baa9538-c925-474c-b313-319817fd3376", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.147866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-38355e02-1b83-46e9-9540-3c0675d7d801 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.093698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.323182s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.093306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_third_party_admin_cannot_list_ports [0.174489s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1fa246c-e7bb-4d75-8bcd-79eff833cdd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.177220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-accd2dad-0212-4b3e-b221-5c9dea71958d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.094908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.091160s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.171114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5fea30ec-de21-4a91-8eac-d01d16089370 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_owner_reader_can_read_port [0.208320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2edcc648-cf7d-40a2-8cce-35a1dae25ef2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-19T19:10:58.642232+00:00", "updated_at": null, "address": "00:00:00:00:00:01", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.080688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.286249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.103082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.163578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6a69d920-be96-4216-ab51-1d3f65291d82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_owner_service_can_read_port [0.158238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92e2341d-faa0-4001-b416-bc4240a28660 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-19T19:10:58.818336+00:00", "updated_at": null, "address": "00:00:00:00:00:01", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.095004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.091967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.162235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fb6b7146-787b-4340-9baf-6e2b115abd84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.293616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_lessee_reader_can_read_port [0.187359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/dad7465d-e4ea-4f15-a015-06c2c33f9a89 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ed9238c-7dc8-47e5-916f-7f25a76f32f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dad7465d-e4ea-4f15-a015-06c2c33f9a89", "created_at": "2025-05-19T19:10:59.019226+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/dad7465d-e4ea-4f15-a015-06c2c33f9a89", "rel": "self"}, {"href": "http://localhost/ports/dad7465d-e4ea-4f15-a015-06c2c33f9a89", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.104028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_third_party_admin_cannot_read_port [0.152937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/abfd8dbb-1732-449a-b760-2224035c6b99 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e1467e2c-e46a-4592-b5e4-90a13134fc17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.108350s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [0.262436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d85a908-d89b-45dc-89cf-9a40ed102f40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.116517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.105367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.450186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_owner_admin_can_add_ports [0.303316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-20d571f6-be0b-466c-88dd-22ad5d38a06d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing [0.089584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.285666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b11c9c86-d6b8-4fbf-97eb-eeac7c39fc04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.117777s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_owner_manager_can_add_ports [0.173273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c60cd78f-f678-4fa1-9546-e74dfbe6f758 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.310385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing [0.151886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.232359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eb226689-390c-4e6d-b5d2-f2d846049e83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.041759s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.036030s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_owner_admin_cannot_add_ports_to_other_nodes [0.233844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '573208e5-cd41-4e26-8f06-ef44022b3793', 'address': '09:01:02:03:04:09'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ffd105b5-3be4-4245-bbeb-b65937dd1b56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.051338s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.053232s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.050225s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.252939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9fe7fca1-1b71-43e1-8752-546cc4bde915 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.053345s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_manager_cannot_add_ports_to_other_nodes [0.176600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '573208e5-cd41-4e26-8f06-ef44022b3793', 'address': '09:01:02:03:04:09'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8a2e0543-b1e0-4311-bb0a-c04bf208fa79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.306811s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.050649s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.058351s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.083659s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.260671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-46568231-4d5a-48b2-b393-be3b65072627 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty [0.073432s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_service_cannot_add_ports_to_other_nodes [0.252259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '573208e5-cd41-4e26-8f06-ef44022b3793', 'address': '09:01:02:03:04:09'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b43ce397-ad51-424b-bfde-c7c77fef9708 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.324474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed [0.113665s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.203823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3e940aea-0a31-4048-b428-64a1945df02e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_owner_member_cannot_add_port [0.263789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1e4ee7e9-00ce-4707-bbcc-c819295592e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.222763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.316755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.232444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6fb7f144-04da-4f09-a847-1fc305c3cb75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_admin_cannot_add_port [0.186995s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-68c85222-df6b-4164-a253-e3dd49bcd7cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported [0.141072s] ... ok {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.067485s] ... ok {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.053518s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_lessee_manager_cannot_add_port [0.192598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c668aaf6-228e-47af-85c8-9a56dc6d2460 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.065436s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.263739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6867c114-9ec9-49b2-95a5-f588a364aa05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.323641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.076033s] ... ok {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.060023s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.118785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-870b6887-1e52-49c4-8c47-e8c3c543524a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_lessee_member_cannot_add_port [0.178342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c97bf495-4fe9-4daa-8daf-507673bb73f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.080753s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.215829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.047481s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.167871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-921d59cb-b3d8-4834-bb12-62daa9965d11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_third_party_admin_cannot_add_port [0.178903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-32b288c0-f2b9-447d-970d-f4fe3461b969 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.033634s] ... ok {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.154146s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.023107s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.020827s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.029140s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.024568s] ... ok {0} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info [0.086375s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.028746s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.020483s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.179435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-42db5835-d5b6-4807-99a3-5dd22d8af790 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.081727s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.048490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_service_can_add_port [0.227883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7e52eb95-8757-4737-8de0-2c4dcb8779c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.058493s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor [0.097160s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.203624s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5cca48cd-1f57-42bc-8f37-827ef62d50cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.147451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_service_cannot_add_ports_to_other_project [0.218039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0c318e06-4224-41d2-8033-deb10178ca4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.165064s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7e59d31a-50d5-4c8a-8d39-99f088ffe161 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.119911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.107494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2a968c1b-afbc-4447-bdfa-e42dd693aee4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation [0.148572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.110682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f7d82072-19b9-4bc3-8cbb-d356a7d4bc32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_admin_can_modify_port [0.345197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-227f662a-5ed8-48d4-97e8-cc3d2216858c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.586885s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.145621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.165530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9f4c1fb1-2b8f-4af3-afcd-4191e712008b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.118849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.093163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.191649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_get_observer [0.156527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-801633e8-0a7e-418b-b666-e7705711a24a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_owner_manager_can_modify_port [0.361334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1bab95a8-aa56-4b44-99e5-50f3f3fc7c35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_admin [0.148801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4472cecf-9b90-4caa-86d0-9759f9cfbc92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.195595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true [0.183025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.146946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_owner_service_can_modify_port [0.302231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c7a87e97-ec3b-4c5a-8201-0bc211a0b9c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_member [0.227537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-93ace89c-a6c6-428a-8096-1cb7cd703351 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.133313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_owner_member_cannot_modify_port [0.206333s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5fd41ce6-7236-4d67-a134-364d1572f44a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_states_console_put_observer [0.209846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bab3c957-dd91-4d59-965e-572efaaee49d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.177886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.109446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_lessee_admin_cannot_modify_port [0.183950s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/911afa09-eb37-43ed-a166-601b3d4c2539 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9cf7506a-5fde-4982-b538-7d1ca5ddfed0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.210490s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a0b3d29f-bc22-420b-a268-3e3b76328ecb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.098900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.066227s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.167010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5af2425c-76db-48c3-b07d-faddc18d0cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_lessee_manager_cannot_modify_port [0.259445s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/e0920256-bd7c-4232-a6bc-5b23d1756702 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-89c21956-4d6f-4e8e-b36a-7aeb6625216f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.863965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false [0.114547s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.208792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eb0fe65f-da2d-4716-b8d8-2cfadce90465 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_lessee_member_cannot_modify_port [0.233090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/85e52338-84ab-4286-be56-21c292778e83 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-80f0a7e6-7ce2-4688-a400-a2611b1e9118 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.148013s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.223780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-26848720-c210-45f1-835b-c2ac78cdc042 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_modify_port [0.195808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/265a93b3-771c-4254-b395-5181912692a7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-16cf289c-6497-4c24-bfb7-115a7f80a285 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 265a93b3-771c-4254-b395-5181912692a7 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.240601s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.199496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-94758743-bae6-4f3f-92cd-c9c4fcf735e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true [0.194017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_owner_admin_can_delete_port [0.309422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-65bda5c6-b56e-469c-9a39-7db123f51a96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.276953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-84aea0e3-d487-454f-a3bd-2ea494afab5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.158109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.122887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.256589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0270855b-8d85-43f4-8461-ea2c75edace3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.137124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.224126s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1cf9ac9e-46e1-4a25-9334-d02b3962c7bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.201396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.174548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.248050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-47ed9a72-74a8-450a-8b27-4559518b2561 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_owner_manager_can_delete_port [0.981099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bb1c11e5-6aef-4831-9066-baa3d1141b9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.229160s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.265860s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bb729363-bf9c-4068-a72d-e342b9125932 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_owner_service_can_delete_port [0.274091s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3bbcd779-496c-4883-a665-62ce9c0d1cae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.219551s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.222315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aabebe24-993e-41d0-93cf-e93d38171cf8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.181302s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_bad_path_raises [0.059307s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.226770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-366fe302-c873-43d3-b191-ec3fc6665921 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths [0.081293s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_owner_member_cannot_delete_port [0.373375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c19d168f-b30e-4334-9405-4049521d4469 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths_trailing_slash [0.048901s] ... ok {0} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_handshake [0.073104s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [2.657937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py: 102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_types [0.081593s] ... ok {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_client_auth_invalid_fails [0.071183s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_lessee_admin_cannot_delete_port [0.300337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/724788f9-d879-4d48-954e-428566d04df1 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b99c1f11-a288-4907-9682-1581a244acfb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_in_choose_security_type_fails [0.112789s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.309889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_security_handshake_fails [0.111800s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_lessee_manager_cannot_delete_port [0.239806s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/8adf152e-06f9-4689-bd18-4c8becb51e9c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5355504e-0132-4459-8e83-7847ae42668b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail [0.079419s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.151192s] ... ok {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail_server_message [0.094911s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.119592s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.846686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cebefb63-4fa8-49cd-ad12-fc3827439cff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_host_version [0.064372s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_member_cannot_delete_port [0.233006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ba7cad72-4a21-44e0-9c87-a73a08804053 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4b50dcb-e75b-413a-8040-d338acdee034 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.051524s] ... ok {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_sec_type_cnt_zero [0.057083s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.078203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_tenant_version [0.060180s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface [0.050384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_full_run [0.042445s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.057436s] ... ok {0} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_parse_version [0.041033s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.033086s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.280868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-96b6ca6e-abfd-4cde-8ce5-fe7caecd440f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_third_party_admin_cannot_delete_port [0.258427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/b31b2855-88ad-4deb-87d1-6e6e18d348d5 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-584a7839-8aab-49c6-93af-439246f92130 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port b31b2855-88ad-4deb-87d1-6e6e18d348d5 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.103455s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection [0.228371s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.140010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.033675s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.042681s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.334198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f795437c-9bbc-48ad-80fb-c1ac6d875809 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_owner_reader_can_get_node_ports [0.362803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c92ccd24-f230-41fe-9979-b30f7201ee61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set [0.093522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection_raise_OSError [0.312505s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset [0.139755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_admin [0.258967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e7152349-543b-4f08-a598-4728664f5081 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_owner_service_can_get_node_ports [0.293637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d1624b1-f273-484c-a8a9-4c6be7ee30ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_address_string_doesnt_do_reverse_dns_lookup [0.301938s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.343969s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_member [0.285337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dd9d5db9-1f5c-4987-b341-5a8949690567 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client [0.256155s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.184876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_lessee_reader_can_get_node_port [0.381650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-367038b8-5953-4220-bf1e-084f7cd7bc40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "4b7e4ed2-146e-43f5-b304-3e88a1c31fa7", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/4b7e4ed2-146e-43f5-b304-3e88a1c31fa7", "rel": "self"}, {"href": "http://localhost/ports/4b7e4ed2-146e-43f5-b304-3e88a1c31fa7", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_get_observer [0.309916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e9dd5fa7-f29b-415b-9a3d-3266ae2cb87b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_third_party_admin_cannot_get_ports [0.250600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad0ac152-4926-4d99-8f31-1db452314115 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_admin [0.209247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-58398a98-41b6-404c-acbe-cb9c7f3a4caf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.387921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_service_cannot_get_ports [0.172032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1db0e8cc-e233-4bf6-bf0a-8852103ee4f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_member [0.176844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e4d709be-4e4d-4169-a20f-943cc0811f3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.216585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_owner_reader_can_get_ports_by_portgroup [0.267623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c076ded-4067-4245-bb55-6ccf667b1098 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_put_observer [0.180794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1fd655e2-1b27-4a39-b055-9012d9e97b41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.153447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_admin [0.249826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e39aedf5-8d3d-4945-bc28-20de4bdbf1e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_service_cam_get_ports_by_portgroup [0.354886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53073ffc-fe52-4a54-a7a9-ec6c0b87af38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_http_forwarded_proto_https [1.095410s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.366081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_member [0.243235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a75029ba-2de6-4968-bf16-b727b66b015d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.185605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_reader_can_get_ports_by_portgroup [0.281649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/4bb2e664-a853-4837-a756-9fa5354e3116/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-38edd429-c621-4036-801c-567d6674a15c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_ipv6_url [0.294957s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.087888s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_delete_observer [0.199693s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-021384b9-f322-4154-a884-bdd19814f69e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.148738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d4670df2-18ff-4b49-804e-9b5e917fbbcf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.222224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_allowed_origin_header [0.302192s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_get_ports_by_portgroup [0.352159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ebe0da9e-c539-43ed-a964-a07528a04d94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.146537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_member [0.196060s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-84edcc13-8209-43d2-9786-23f4e6cdfb4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_bad_origin_header [0.258790s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_service_cannot_get_ports_by_portgroup [0.263188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ac0a7cbf-198c-4438-8ad2-620a4a923a62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.219008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0ce44a0-fd5b-404f-bec4-a40be6086547 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.293351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_owner_reader_can_list_volume_connectors [0.175542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d429d53c-8f0b-4cb0-b63b-a3330e197312 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "a1e390c9-4df2-494d-8ec1-275826596e6a", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a1e390c9-4df2-494d-8ec1-275826596e6a", "rel": "self"}, {"href": "http://localhost/volume/connectors/a1e390c9-4df2-494d-8ec1-275826596e6a", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_blank_origin_header [0.273583s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.271423s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5f07602-fc3f-41ee-a013-92dbac9e777b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.278197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_lessee_reader_can_list_volume_connectors [0.227614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c52eca9-c139-466a-8747-a9515bbd33f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "19c864af-f0d6-4b4e-8908-0dd0db8822cd", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/19c864af-f0d6-4b4e-8908-0dd0db8822cd", "rel": "self"}, {"href": "http://localhost/volume/connectors/19c864af-f0d6-4b4e-8908-0dd0db8822cd", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.094514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.120632s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_no_origin_header [0.354926s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_third_party_admin_cannot_get_connector_list [0.165457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d62a136-a6a0-4baf-a491-941cc54d9a1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.308418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7000d7f9-d214-40f4-b8de-922c80f02304 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.100466s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.142626s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_owner_admin_can_post_volume_connector [0.252095s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/7aba598f-00a3-44f4-8c39-171908759f6d Openstack-Request-Id: req-0ae1d773-cafc-429e-b200-831956bca8d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7aba598f-00a3-44f4-8c39-171908759f6d", "created_at": "2025-05-19T19:11:10.798184+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/7aba598f-00a3-44f4-8c39-171908759f6d", "rel": "self"}, {"href": "http://localhost/volume/connectors/7aba598f-00a3-44f4-8c39-171908759f6d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_token_invalid [0.343962s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.334258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d28eb05-462a-4e61-aa60-4507cfd343cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.163442s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_post_volume_connector [0.235466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/0efc41fe-09f9-48f9-b226-fa2343d7028c Openstack-Request-Id: req-7f0df16b-0bbe-44ec-8a7e-ca3f715b5d10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0efc41fe-09f9-48f9-b226-fa2343d7028c", "created_at": "2025-05-19T19:11:11.053171+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/0efc41fe-09f9-48f9-b226-fa2343d7028c", "rel": "self"}, {"href": "http://localhost/volume/connectors/0efc41fe-09f9-48f9-b226-fa2343d7028c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.110399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_admin [0.290234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dc91ee43-d66f-4904-8b8b-d10899fa6042 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_non_default_ssl_min_version_is_set [0.328909s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_service_can_post_volume_connector [0.240398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/37fccdd9-189d-4eec-96dc-e7038c99cc14 Openstack-Request-Id: req-2bd85ce3-3e08-4c9e-95d5-e37647b14f61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "37fccdd9-189d-4eec-96dc-e7038c99cc14", "created_at": "2025-05-19T19:11:11.291128+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/37fccdd9-189d-4eec-96dc-e7038c99cc14", "rel": "self"}, {"href": "http://localhost/volume/connectors/37fccdd9-189d-4eec-96dc-e7038c99cc14", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_member [0.250663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-60a944a0-8e8a-474b-8e9c-c401f92fd622 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_admin_cannot_post_volume_connector [0.381552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5f356221-79fc-4f2f-898e-12285cf882cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_get_observer [0.384750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-191d65ff-92ef-4d4d-ab19-37437220bd58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_lessee_manager_cannot_post_volume_connector [0.300402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-910cab99-9432-4fe7-92b4-f54024483466 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.970537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_admin [0.282744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4be8be70-7c4e-4547-ba2e-a586c576bff9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.199549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect [1.041823s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_post_volume_connector [0.318962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6a7291a6-d32a-4cad-8db5-48e0d90c8c33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_member [0.281744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2ccc5e56-5787-4287-97bc-54f222a2054a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.181595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect_3_slashes [0.237664s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_service_admin_cannot_post_volume_connector [0.278286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-654bfc74-e5f5-4c75-9ef4-c0e08a04fc74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.190696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_post_observer [0.281734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4561ed81-f7d1-49f0-9ba3-098e399ec3c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_is_not_set [0.223364s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.204866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_not_set_by_default [0.176390s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_reader_can_get_volume_connector [0.318599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/c890a0d3-7dc9-45d7-a85d-4951f773853f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae2b6937-bdae-40a0-aefa-dd80ee6a74d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c890a0d3-7dc9-45d7-a85d-4951f773853f", "created_at": "2025-05-19T19:11:12.826994+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c890a0d3-7dc9-45d7-a85d-4951f773853f", "rel": "self"}, {"href": "http://localhost/volume/connectors/c890a0d3-7dc9-45d7-a85d-4951f773853f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.290936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b8b6b2c1-dd98-4025-bafa-07f927f84d8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.198503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.251916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-80071170-0a14-4974-8b7b-15867b21f5b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_lessee_reader_can_get_volume_connector [0.281587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/474ad383-350d-408d-8c2e-52b716ffb7e6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f742556-8d6d-45f1-a83d-953791219f15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "474ad383-350d-408d-8c2e-52b716ffb7e6", "created_at": "2025-05-19T19:11:13.131746+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/474ad383-350d-408d-8c2e-52b716ffb7e6", "rel": "self"}, {"href": "http://localhost/volume/connectors/474ad383-350d-408d-8c2e-52b716ffb7e6", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.183922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.219243s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.284326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-97a6ff03-f2ab-411d-b38d-bf5f80281bdb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_third_party_admin_cannot_get_volume_connector [0.297997s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/10de2c36-9164-492d-ac2f-8faf35019451 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-24f894b8-9762-4e22-b71f-8088d0812907 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 10de2c36-9164-492d-ac2f-8faf35019451 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.152558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_lessee_member_cannot_patch_volume_connectors_extra [0.208831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/08c907d6-1c48-4f25-b877-b0ce8ef79c7b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-da24a572-8974-4b3b-8e79-ac49c5b97c4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.244488s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-996e7b16-c986-443a-8129-7d1819d29824 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.221803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.130001s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_admin_can_patch_volume_connectors [0.226931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/03ced403-e280-4a45-8953-f1d3bff52cbd WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-66bef610-6d54-4583-b8ad-9556bcc64251 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_member [0.255505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e48240cb-2a81-44a5-a859-a2d7d9b4d398 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.157937s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.252090s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_owner_manager_can_patch_volume_connectors [0.242518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1c9d3303-4de1-4ed8-95a0-96e26c601f53 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6e5720d8-f3bc-4c87-a1b9-8bc73142008b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.149565s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.312979s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f3cbb44e-559f-4f1e-94e8-62d89f799cd8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.249624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_lessee_admin_cannot_patch_volume_connectors [0.323420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/76565aba-4f02-4e8b-8930-16329d0fab1c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7225e92c-f7dd-4392-8371-932d15d2cb00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.296149s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.468516s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_lessee_manager_can_patch_volume_connectors [0.212630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/fa0a47d4-3caa-4740-932f-11270d1bcd7b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-55bfae83-ca47-4736-9bd1-12252ced45ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.222453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_owner_member_can_patch_volume_connectors [0.296587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/7168dc4b-06a5-49b9-a715-ec01f84678df WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4ac2e19-379a-451b-93d3-c435442cb384 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.388878s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.270035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.109582s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_lessee_member_cannot_patch_volume_connectors [0.174805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/3ef14d17-5ae0-4c64-afea-bb4f99001af9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6edcf140-ed86-4813-a183-1066b47f55e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.180396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.136974s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_third_party_admin_cannot_patch_volume_connectors [0.173868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/86e8005f-f0d2-422b-8026-3eb8aacd3900 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-566b8d12-0508-483a-97f5-ada03faef69c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 86e8005f-f0d2-422b-8026-3eb8aacd3900 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_admin [0.254244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2263e1be-b1d3-43b3-b882-4a16716ebe48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.112325s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.224424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.118125s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_volume_connectors [0.219084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/81e30403-cfc6-491f-a920-16e42ffcc586 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-10208e47-fe1e-4059-ac6d-7e82e4727709 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.081431s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_member [0.288796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-254d3b3b-7b4a-43ac-a87d-c2c7c013a12f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.098475s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.248893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_volume_connectors [0.206120s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/681ca21d-4141-4af7-bf90-f9764c437f40 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-35af0e7a-38d6-4452-a64b-8ad402885524 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.072764s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.064888s] ... ok {3} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.170542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_get_observer [0.271160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eda2af8c-cc18-4e73-b3e9-6fa8b2f64d83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.057024s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.116079s] ... ok {3} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit [0.033121s] ... ok {3} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run [0.029691s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.110667s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.024903s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.029020s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.036193s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_admin [0.293106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-80f67517-a559-49f0-9ad4-f440c75d968c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_member [0.234378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f2f42a8b-ac95-4a3b-af05-44bea6704e3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.337615s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.030186s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_owner_service_can_delete_volume_connectors [0.827242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1e60533d-5350-49d6-932d-a8567ef791e0 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-53471bd8-352b-44b9-8970-f61fac807cc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.080067s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.027183s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.042933s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_post_observer [0.226385s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b51cda08-c7ff-4bda-b010-fd1cb7a42109 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.031363s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.043489s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.048457s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.030214s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.047953s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_admin_can_delete_volume_connectors [0.289701s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/e6de5636-e265-4362-b28a-566c82a8e041 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-97f0f010-1d56-4857-90d5-fee9f4bb5bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_admin [0.246666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1a53675e-7526-48a4-b317-b9e1f1a2dd82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.064876s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.078407s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_lessee_manager_can_delete_volume_connectors [0.188459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/93255706-e183-4ab1-a1e3-0f878779a8da GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-70cb8912-50b4-4145-965e-0440e04c3d94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.086547s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_member [0.233755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-86e2b11f-7ba9-458b-ab34-58f19949da75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.104713s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_third_party_admin_cannot_delete_volume_connector [0.182688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/ad634c38-2859-4730-b3f3-99eb2a122abd GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c8bd1484-deca-4a3d-8b97-e16e12e0607a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ad634c38-2859-4730-b3f3-99eb2a122abd could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_detail_get_observer [0.155332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5e19acb4-b18f-4d09-b347-c9f311b92675 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.122418s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.081252s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.142893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-635e8d1a-a016-47ce-a832-35a7a7777e08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.049577s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_service_cannot_delete_volume_connector [0.269439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/ac45f057-c7ee-40ea-84f8-2898a1a99076 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2cc5affb-6c01-41dd-a913-9bd8c25a7f26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ac45f057-c7ee-40ea-84f8-2898a1a99076 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.072800s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.103178s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.214668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-50eaf331-44a0-4893-956f-0df7e7101021 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.071921s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.029857s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.049457s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_412_owner_reader_can_get_targets [0.295898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1671d1cb-ad14-4150-8e4a-c49d7c14ad82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "f04d32ec-cbac-47c9-8a70-0e13ff82ca81", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f04d32ec-cbac-47c9-8a70-0e13ff82ca81", "rel": "self"}, {"href": "http://localhost/volume/targets/f04d32ec-cbac-47c9-8a70-0e13ff82ca81", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.056567s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.191582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-38b78565-cdef-4261-8418-b2f2a9543db5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.026396s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.022986s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.025781s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.038126s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.038434s] ... ok {3} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple [2.058286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.080252s] ... ok {3} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop [0.088864s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_lesse_reader_can_get_targets [0.300336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14f2e6e5-b8fe-45f8-825a-678cc85a0928 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "5485fcbb-d914-4f48-a0d3-7063c3973acb", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5485fcbb-d914-4f48-a0d3-7063c3973acb", "rel": "self"}, {"href": "http://localhost/volume/targets/5485fcbb-d914-4f48-a0d3-7063c3973acb", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.090692s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.101000s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.105536s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.057318s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_third_party_admin_cannot_get_target_list [0.333833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b51289bd-9646-49bc-af6e-c8628403c1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.068280s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.092387s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.051469s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.825282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5439392e-317a-4e21-ab4c-4f48fcb71105 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.083957s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_owner_reader_can_get_volume_target [0.296421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/dcbf0e2d-8776-45ab-ba57-4b1d74ff74d5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6cee3842-8baa-460c-814e-ded11372faae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dcbf0e2d-8776-45ab-ba57-4b1d74ff74d5", "created_at": "2025-05-19T19:11:18.823763+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"redacted_contents": "** Value redacted: Requires permission baremetal:volume:view_target_properties access. Permission denied. **"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/dcbf0e2d-8776-45ab-ba57-4b1d74ff74d5", "rel": "self"}, {"href": "http://localhost/volume/targets/dcbf0e2d-8776-45ab-ba57-4b1d74ff74d5", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.058469s] ... ok {3} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.740082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_offline [0.062415s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.264513s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-22d47d6f-af72-4838-aed4-e2ac3cea57a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.085541s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.076610s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_lessee_reader_can_get_volume_target [0.290581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/00343933-887c-4c0c-9f79-6b34333647ce WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71830c5b-b6f2-4e1e-b7b7-f3d113a636a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "00343933-887c-4c0c-9f79-6b34333647ce", "created_at": "2025-05-19T19:11:19.123673+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"redacted_contents": "** Value redacted: Requires permission baremetal:volume:view_target_properties access. Permission denied. **"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/00343933-887c-4c0c-9f79-6b34333647ce", "rel": "self"}, {"href": "http://localhost/volume/targets/00343933-887c-4c0c-9f79-6b34333647ce", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.092436s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.219765s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-40b42fc3-b2e7-4483-883f-e578d73c7df5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.068937s] ... ok {3} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.427829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_417_third_party_admin_cannot_get_volume_target [0.293316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/44837040-27d5-432d-9101-ee4b6a7d52b7 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5387d01d-c35e-4116-93fa-e2e53c9b2d99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 44837040-27d5-432d-9101-ee4b6a7d52b7 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.185953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-89842500-a021-4087-b206-42a1bcf5d1dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.141287s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.184455s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ba2ceeb5-a3dd-4b06-84bb-1fa5a3512366 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [0.166428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_owner_admin_create_volume_target [0.346068s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/ef20a6bf-3e3c-4d2a-8b2f-ca20ba8c1d5e Openstack-Request-Id: req-daab20be-a360-44b1-ba8b-c21c7923ea51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ef20a6bf-3e3c-4d2a-8b2f-ca20ba8c1d5e", "created_at": "2025-05-19T19:11:19.874759+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ef20a6bf-3e3c-4d2a-8b2f-ca20ba8c1d5e", "rel": "self"}, {"href": "http://localhost/volume/targets/ef20a6bf-3e3c-4d2a-8b2f-ca20ba8c1d5e", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.162031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-93c56778-2e1e-4774-9a96-f712f50dd2fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.216281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.658376s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_owner_service_create_volume_target [0.222772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/9b95d22c-fd0c-4b05-a2a1-3a072afcee97 Openstack-Request-Id: req-8b99a019-7090-4b8e-bede-93c7e08a34b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9b95d22c-fd0c-4b05-a2a1-3a072afcee97", "created_at": "2025-05-19T19:11:20.104613+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9b95d22c-fd0c-4b05-a2a1-3a072afcee97", "rel": "self"}, {"href": "http://localhost/volume/targets/9b95d22c-fd0c-4b05-a2a1-3a072afcee97", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_admin [0.237296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-47633a97-8ee7-40f0-afc3-b978d19a83a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template [0.158398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.105928s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_owner_manager_create_volume_target [0.189435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': 'test-id'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/b8eb368d-9e9d-4877-a1d0-f87567040e52 Openstack-Request-Id: req-942f1e3f-68b3-4a19-bb7b-b4eccae3c983 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b8eb368d-9e9d-4877-a1d0-f87567040e52", "created_at": "2025-05-19T19:11:20.293219+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b8eb368d-9e9d-4877-a1d0-f87567040e52", "rel": "self"}, {"href": "http://localhost/volume/targets/b8eb368d-9e9d-4877-a1d0-f87567040e52", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.159999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_member [0.266707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6be9816c-d14c-4566-a667-5b24b60c8851 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_lessee_admin_create_volume_target [0.293574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/f8d8717c-5eb6-4853-abc8-71326bb8a115 Openstack-Request-Id: req-10ad80bc-abe3-4977-b55a-4e63e5e09912 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f8d8717c-5eb6-4853-abc8-71326bb8a115", "created_at": "2025-05-19T19:11:20.576800+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f8d8717c-5eb6-4853-abc8-71326bb8a115", "rel": "self"}, {"href": "http://localhost/volume/targets/f8d8717c-5eb6-4853-abc8-71326bb8a115", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_get_observer [0.187317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7a194c83-6447-4cdb-8ac6-24fdae4ea29b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.528630s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.102819s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_create_volume_target [0.236608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id3'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/83a44b20-e852-4ab4-ad55-3f665efe28a6 Openstack-Request-Id: req-544ea1b8-3a14-4eb1-92e2-d5e538a6715b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "83a44b20-e852-4ab4-ad55-3f665efe28a6", "created_at": "2025-05-19T19:11:20.821062+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/83a44b20-e852-4ab4-ad55-3f665efe28a6", "rel": "self"}, {"href": "http://localhost/volume/targets/83a44b20-e852-4ab4-ad55-3f665efe28a6", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.259508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9509aa3c-3e60-409b-8c19-dd9432775fe9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.672484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_third_party_admin_cannot_create_volume_target [0.183304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-49c2175e-bef9-478c-8470-6bec847c5957 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.178543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0c251f8b-55ca-432d-8fe0-013912127530 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing [0.111775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_owner_member_can_patch_volume_target [0.257509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/247b88e9-e194-4bb6-8bb2-57584ad69165 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-65646181-a730-4176-af2d-fa408bcf08a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.214288s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2243302f-d38a-4c0e-a564-a0e30832cccd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.166739s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.140830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.657819s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_service_can_patch_volume_target [0.236111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/6407a98e-d8ad-4434-871a-ccda9194aff5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4eae76aa-20f1-40ce-960a-510e9c37c670 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.096228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.091575s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.057655s] ... ok {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present [0.102314s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.063278s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_admin [0.410321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4630fbbe-77f9-47b2-9905-5d95b2898055 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.077799s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_lessee_admin_can_patch_volume_target [0.258021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/832f8dc0-2e01-4568-8f8e-66f708a8a5ff WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c0cefa9d-15ac-404e-b188-5f86446960f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off [0.129627s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.106001s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.070117s] ... ok {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none [0.200338s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_lessee_manager_can_patch_volume_target [0.208789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/6c47c382-a1df-4f83-8eed-77676ac18295 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e19ebc51-5e08-4005-a689-156d3eaae1b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_member [0.299060s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b2863f22-b8a5-4ce6-8797-af502db1cc32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.101527s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.099715s] ... ok {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode [0.169621s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.085593s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_member_cannot_patch_volume_target [0.281835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/da8c61d6-b479-4445-a002-3855e4a828a6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-494bf8ea-ac1f-493a-bd31-5771673ae0f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_get_observer [0.300725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-df18475c-16c5-45eb-a768-ee37f823f2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure [0.151305s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.073375s] ... ok {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness [0.096813s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.080094s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.053690s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_admin [0.218554s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e30e2a91-1282-44d7-93b0-31db7b58549b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set [0.096674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.063385s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_patch_volume_target [0.258826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/98ce5aab-e828-4d97-aa81-c885fdd83d8f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-335357b0-3b97-47d2-9c98-4d9c753abc26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 98ce5aab-e828-4d97-aa81-c885fdd83d8f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported [0.062631s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.107281s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.158458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.113506s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_service_cannot_patch_volume_target [0.227962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/c7b3a0ef-9371-4ece-9fc5-6cdcd174af2f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-35a60c57-b68d-4b0a-8ae1-4826d7f25aab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target c7b3a0ef-9371-4ece-9fc5-6cdcd174af2f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_member [0.276156s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1988948a-dca4-4181-8d28-f50f636d7213 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.207840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_post_observer [0.256541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-014186c5-5a76-436f-b928-0d681d8df084 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.135021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_owner_admin_can_delete_volume_target [0.339553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/542afbc2-b1a6-4c40-9c17-f84f101df093 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d9718b97-35f7-4e6d-9645-a2550de059cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.071481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_admin [0.173585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dd0a39c4-16de-43ae-809e-fd15b316ef9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.094577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_432_owner_manager_can_delete_volume_target [0.185808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/cd3f118b-a143-4796-8eab-8d00078e5791 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9c572e91-41f0-433e-9636-b031a5ba84a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.121021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.045167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_member [0.236181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c6752ce8-c9c6-4a12-9d54-1d6c0590c6f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.751588s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_manager_can_delete_volume_target_service [0.262946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/227b238c-48b5-46a0-aea1-e9498cda82ce GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f298f11a-6593-463f-ba8d-aacb34f609cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.122631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_detail_get_observer [0.163939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8c1e8aed-96ab-45c9-8903-0b8321e05454 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.124438s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.086084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.054228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.114619s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_admin_can_delete_volume_target [0.188554s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/19d3f9a8-fe96-43f1-8875-ed7f8d755436 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f32d18ef-434c-43ba-bc16-224eda7d99f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.075921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_admin [0.221244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-90006979-9a0e-4567-b7da-be9d089986b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.059137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.116347s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_lessee_manager_can_delete_volume_target [0.186935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/4ab06cbe-330b-475b-ac40-3e272637c3e6 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-99616a6d-b3b1-42ac-be9f-be26df1af6fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.097134s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.189834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_member [0.201649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e3752de1-6141-43f7-9df2-a64754832511 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.106531s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_owner_member_cannot_delete_volume_target [0.177274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/a1155672-3709-454c-b2e8-e700d69bb549 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3f9e8aa-98b0-4eaf-84dd-d91e0e2e5cef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.095162s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.232091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.118755s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_get_observer [0.241069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9656593c-033d-4970-b7b4-b217aa4c78b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_lessee_member_cannot_delete_volume_target [0.238613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/e25bb476-f4bd-49bb-b3db-dbb0ffd984ac GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-79c1f272-dcb8-46ae-a311-4199670b4135 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.120765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.120231s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.114315s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.141857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_admin [0.277838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-015e6e94-cf0f-4f21-9286-7937a9b4ca93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.094986s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_third_party_admin_cannot_delete_volume_target [0.219809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/0db7e4c2-645f-43e6-8d40-d00da4b8ba07 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0923c49-0c65-495e-89f0-387bdd23b188 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 0db7e4c2-645f-43e6-8d40-d00da4b8ba07 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.079068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.088422s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.141154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.110393s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_service_cannot_delete_volume_target [0.208985s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/69ea3e98-23a3-405a-982f-55174509fec7 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d3e4199d-95b7-4f22-8cda-a531e3ad2bf8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 69ea3e98-23a3-405a-982f-55174509fec7 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.083177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_member [0.277858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-635f264a-0b9b-4f3b-aa59-4d92b5ec1956 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.080899s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.102129s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.076067s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.050091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.062688s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_patch_observer [0.226243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bec12cd4-57e0-4f69-9919-a55033f5ec60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.067084s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.109600s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_owner_reader_can_get_volume_connectors [0.303591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-033f08dd-3364-4916-8fbb-1ddaab3deb0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.067313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.103636s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.088578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.069660s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_admin [0.222438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9f7d1c37-f8b4-4a4e-814d-95bee46e704f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.044992s] ... ok {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.068697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.066605s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.064616s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_service_can_get_volume_connectors [0.355318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4ea3c3f-8178-49f3-9ae1-40702b4d730b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.161545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_member [0.238597s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9c2d9258-85c3-45f3-a495-1b9640dd1c26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.186801s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.211991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_can_get_node_volume_connectors [0.283797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ecb12b1-e98c-4cb4-83d5-daa213302215 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "2a88624e-bf55-48aa-a7fb-2119503e3a2b", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2a88624e-bf55-48aa-a7fb-2119503e3a2b", "rel": "self"}, {"href": "http://localhost/volume/connectors/2a88624e-bf55-48aa-a7fb-2119503e3a2b", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_ports_port_id_delete_observer [0.236832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a7a5515f-2121-42ba-a852-e6474bdd73ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.206218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.130506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.016548s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.025478s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.023823s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.052075s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.197379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.058011s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_node_volume_connectors [0.284572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f388bd1b-c55b-4102-9ea9-fb74c0e24ec9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.037018s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_admin [0.294722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b088f7a-d416-46d7-97b9-68e5c6376ffe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.066352s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.048102s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.023947s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.023205s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.198046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.051281s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.040911s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_node_volume_connectors [0.270343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-85071a41-66f8-452a-87ce-cf70d7499478 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_member [0.275683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f229d63-4e78-46b5-8d17-5ed7b8a89b7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.044976s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.172103s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.037210s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.044210s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.036363s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_node_volume_targets [0.225123s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2c2ba8c-856f-462f-991d-76e31015b2de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.236147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_get_observer [0.283466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ddc4b914-2808-4d3d-973f-753d6fc6a478 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.172040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.243916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-552ccb3d-07f1-4b1a-a448-1a98011b7be4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.117585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.032993s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.096764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.581484s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.091954s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_member [0.254884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a82ead8e-b4e5-408c-8948-5f4f335a5a48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.076516s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.053451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.047307s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.021354s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.054304s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.110789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.032997s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.037406s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.030048s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.030278s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.033849s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.302667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-02fbaded-37d0-4b05-b5fe-26d1703f4f8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.154588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.040285s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.036815s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.078210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.057851s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_owner_service_can_read_get_node_volume_targets [1.065044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85fb455b-c234-417d-acc8-e7d672da5014 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.042156s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.126974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.041528s] ... ok {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate [0.038357s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_admin [0.285411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c6a959b3-ff5d-44b3-bf25-ed900dda6f94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate_some [0.071274s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.121759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_all [0.041660s] ... ok {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.048865s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.108005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.044347s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.049304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_reader_can_get_node_volume_targets [0.343819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-082b90d6-9d0f-4008-b9cc-bf92e5a7d759 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "6f206698-77b7-47cd-a410-143b4b3b1dd1", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6f206698-77b7-47cd-a410-143b4b3b1dd1", "rel": "self"}, {"href": "http://localhost/volume/targets/6f206698-77b7-47cd-a410-143b4b3b1dd1", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.048871s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.023679s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.063795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.053815s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_member [0.326241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ad296ea-9bf0-47e1-b637-546150252144 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.061430s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [0.125146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.081943s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.077655s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_third_part_admin_cannot_read_node_volume_targets [0.307806s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0990fe17-0e63-450d-aef9-ce76d84b8ca1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.101010s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.143072s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.058554s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_get_observer [0.354212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f81fc630-14fa-41e2-addd-6c8319179289 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.048923s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.173115s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.070587s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.040272s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.025936s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_service_cannot_read_node_volume_targets [0.339574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-514974b6-69c9-46f5-8ab6-f5e59d40939d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.039433s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.243931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49de81c4-ddb2-4ed4-a058-e0ad57131796 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.034872s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.203256s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.065947s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.029631s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.036720s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.138165s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.042543s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.254874s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dc8526b9-9c57-4215-a9fb-3bf63141d8da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_drivers [0.311758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-82b7df5d-df9f-46de-9ff9-f934ffb23570 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.059867s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.140785s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.062837s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.059874s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.037700s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.137494s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.236795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bfc7c5f2-68a7-4913-9e97-cf234b8eb4ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_drivers [0.251904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-10474826-65aa-4181-93fb-805bcd1bebde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.097736s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.050284s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.179080s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.026374s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.081900s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_drivers [0.220940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-759b5f08-a064-4fad-b25e-d2a3175a4b61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.034209s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.023522s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_admin [0.283361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-84ea1d97-aad8-41a9-88a4-ffc41b779594 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.179650s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.042634s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.037081s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.028542s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.022642s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.027109s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_service_cannot_get_drivers [0.230583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a44d1c5f-7987-4073-9e36-ae29b95feeea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.045659s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.218816s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.029226s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.075314s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.114361s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.077031s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.298680s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_454_owner_reader_cannot_get_drivers_vendor_passthru [0.377935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-432cb0c3-f6ac-4c11-9ca2-9c46fb2daea2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.108195s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.091036s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_member [0.790764s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ca669596-4fdf-4b29-a8d0-efc2ac5c44d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.256521s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.102143s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_lessee_reader_cannot_get_drivers_vendor_passthru [0.346084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5675c39b-9887-4143-8ca8-103927747a73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.121408s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.234975s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.135919s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_get_observer [0.306753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8c15d7f8-cc76-4d14-aa50-20720b20a3fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_456_third_party_admin_cannot_get_drivers_vendor_passthru [0.249589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6fe85c91-6096-47ca-8a66-1769334d8e42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.102063s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.216349s] ... ok {3} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_list [0.122586s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_admin [0.262846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b0425aa1-2928-4bcd-b81c-d7e84b112982 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.109685s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.094804s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_457_service_cannot_get_drivers_vendor_passthru [0.358714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ab4c18b2-178d-40b6-b5e0-74c1df688664 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_member [0.231297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a2a8a56d-b717-4925-b1f6-64066117c69e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.087941s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.143029s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.132555s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_get_observer [0.311218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0fb338a3-cfce-4f07-b644-66dfb212825c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_reader_can_get_bios_setttings [0.532981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ee7d769-fc83-4b17-a7fb-3bb4bb087a85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_admin [0.301808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1eec58ba-f290-45e0-9099-4fd156ebaf36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_member [0.088850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f6efce5f-1503-45e7-b0cf-044aeff00b15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_connectors_post_observer [0.075868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-769515a1-26d6-41bc-9178-5d8ba52af841 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_459_lessee_reader_can_get_bios_settings [0.430384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59a3b315-021a-443a-8a1c-32cb8255aba0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.151669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/c3fda742-3214-415b-9e2f-c27939bdd731 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-726a9a43-e953-4319-a425-f7557f509454 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c3fda742-3214-415b-9e2f-c27939bdd731 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.115970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/ee0f255c-89db-458f-a1d6-fc49cdf31d58 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d1571932-d744-49f6-af0f-c3ce135dacdb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ee0f255c-89db-458f-a1d6-fc49cdf31d58 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [1.476136s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.885245s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.211328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/9218e649-6b34-48b6-8f96-c9bc64c93d08 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-73c01408-8e5f-4083-a098-254b801eed92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 9218e649-6b34-48b6-8f96-c9bc64c93d08 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_460_third_party_admin_cannot_get_bios_settings [0.402647s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-15a6050b-46cf-4555-a042-545a97f38e51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.140734s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.208865s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.120228s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.200808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/6a108e59-4ccf-48fd-a19c-5981a472d995 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-859f4d5c-0665-44d6-9933-cd2908410e69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 6a108e59-4ccf-48fd-a19c-5981a472d995 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.179440s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.142673s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_461_service_can_get_bios_setttings_owner_project [0.326241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ade0d58e-9c09-4f1e-99d9-f3a17bed7010 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.198575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/7af86b50-cf08-4eee-9e77-c7bcdfcd9954 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b214a182-cb3d-4ca6-93c0-cd7e493398a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 7af86b50-cf08-4eee-9e77-c7bcdfcd9954 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.098231s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.176040s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.132132s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.190669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/4ff92744-1612-46ab-9ec0-f2084adbcae7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-04599e29-0963-431d-af12-4d5d45c8da97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 4ff92744-1612-46ab-9ec0-f2084adbcae7 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.195547s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.122999s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_462_service_cannot_get_bios_setttings [0.321214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7c2f3ee2-e566-49e2-b11d-8755d91f8acb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.130355s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.270305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/ca0c6e77-2d7a-453f-a66d-16d446b83879 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7e42ffa0-119e-41f0-b984-11abce7e4c3e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ca0c6e77-2d7a-453f-a66d-16d446b83879 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.266669s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.122358s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_463_owner_reader_cannot_get_conductors [0.325556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f67803b7-6a23-4169-b814-f29595f8c9cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.120076s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.192807s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/71738e57-888d-418e-a07c-fef5aef2a180 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-20724a4e-6ead-473b-86c0-0aa1bac3ed3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 71738e57-888d-418e-a07c-fef5aef2a180 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.260081s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.121899s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.197856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/801191d0-8bb4-4a9e-b7e3-5290e7024f16 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2e9e7623-12bf-4698-a290-8743cc8816ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 801191d0-8bb4-4a9e-b7e3-5290e7024f16 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_reader_cannot_get_conductors [0.328575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-32fa3dc0-6079-4772-a085-1acde30cd4c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.266792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.297072s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_admin [0.215302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-094c4f01-d92f-447c-b7b5-95e5492a9ca2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_member [0.207577s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-47abc25d-74e6-44ee-a2c3-2cca5e79ad1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk [0.249938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_cannot_get_conductors [0.386744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8694375d-a4ec-4f8c-8e1a-f1bf8a9e3009 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.317156s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy [0.126314s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_get_observer [0.198212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-28c9fc08-4bcf-4e5b-baf2-2c4b6cf02652 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent [0.091025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor [0.092525s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.293165s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.079230s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_admin [0.238116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-64118a5b-f1f2-4f5c-9d99-a26adcc621a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.087934s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_466_owner_reader_can_get_allocations [0.483163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d1cac52-b44f-47b2-a52a-7239890162ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "6633296f-4b9b-4096-9a13-5a4bfbdadd77", "created_at": "2025-05-19T19:11:34.471575+00:00", "updated_at": "2025-05-19T19:11:34.473112+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "resource_class": "CUSTOM_LEASED", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/6633296f-4b9b-4096-9a13-5a4bfbdadd77", "rel": "self"}, {"href": "http://localhost/allocations/6633296f-4b9b-4096-9a13-5a4bfbdadd77", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.124290s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_member [0.193641s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-21e11f46-a2d4-420b-91d6-c1ede4a5dd48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.232570s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.113185s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_targets_post_observer [0.175965s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2696b253-91e3-4069-88c3-687290332e87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.167198s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_467_lessee_reader_can_get_allocations [0.319346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7e67464-7b28-4414-9695-ee3f6ab955a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "7f2c5965-88b3-4f19-beb1-987176d3a6f1", "created_at": "2025-05-19T19:11:34.862384+00:00", "updated_at": "2025-05-19T19:11:34.876668+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "resource_class": "CUSTOM_LEASED", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/7f2c5965-88b3-4f19-beb1-987176d3a6f1", "rel": "self"}, {"href": "http://localhost/allocations/7f2c5965-88b3-4f19-beb1-987176d3a6f1", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.146564s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.139690s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.172573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/9762b2c2-b2bf-489b-9a62-eef689b64501 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-480413a3-54bc-4d9f-8085-2d448560c5a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 9762b2c2-b2bf-489b-9a62-eef689b64501 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.099159s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.114896s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.142239s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_member [0.183833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/6d61eee5-bfe3-4ee8-aba3-3400b2b65626 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ec111c7-5f17-4b00-bec5-ba7986fc7140 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 6d61eee5-bfe3-4ee8-aba3-3400b2b65626 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_468_owner_reader_can_get_their_allocation [0.294479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/19ceaeec-cd1f-419e-bdbe-3a656b0e6a69 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c04e6d9-2317-4155-975f-75fefd799150 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "19ceaeec-cd1f-419e-bdbe-3a656b0e6a69", "created_at": "2025-05-19T19:11:35.126887+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/19ceaeec-cd1f-419e-bdbe-3a656b0e6a69", "rel": "self"}, {"href": "http://localhost/allocations/19ceaeec-cd1f-419e-bdbe-3a656b0e6a69", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.096648s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.161084s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.126987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/dc2cd27b-7cae-4450-b33b-3b72f3249e69 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-da1ec3fd-562c-4f17-ac72-e2e77fbaf74c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target dc2cd27b-7cae-4450-b33b-3b72f3249e69 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.066359s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.081951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/bcf6cc0d-e9aa-4ccf-8678-faa3cb071da0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3016adfd-36c2-44d5-a8e2-254ec9827df8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target bcf6cc0d-e9aa-4ccf-8678-faa3cb071da0 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.134704s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.132890s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.117903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/e39720c1-ee13-4651-a8cd-4fdfb8dc94c2 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8766f149-6588-4e7f-8da2-99dc0ce3d592 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e39720c1-ee13-4651-a8cd-4fdfb8dc94c2 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_469_lessee_reader_can_get_their_allocation [0.304156s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/33151079-4a32-4430-a055-5b97c42a6f48 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-25765ae8-7bfa-466c-a1d2-231d603f6eb9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "33151079-4a32-4430-a055-5b97c42a6f48", "created_at": "2025-05-19T19:11:35.452222+00:00", "updated_at": "2025-05-19T19:11:35.473706+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "resource_class": "CUSTOM_LEASED", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/33151079-4a32-4430-a055-5b97c42a6f48", "rel": "self"}, {"href": "http://localhost/allocations/33151079-4a32-4430-a055-5b97c42a6f48", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.123221s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.123824s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.117040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/dacb8b8f-70cd-4726-88c2-198786ce96c3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e9328126-1bee-43d2-9584-d1802648e770 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target dacb8b8f-70cd-4726-88c2-198786ce96c3 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.132961s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.096308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/699318f9-0f71-4fc1-8880-6192ce13c268 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-31150ac0-7520-4606-8fc8-50688eb9419e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 699318f9-0f71-4fc1-8880-6192ce13c268 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.116035s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_470_owner_admin_can_delete_their_allocation [0.269927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/fd6dc6d3-aee6-460a-9ff3-212345043171 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a11b2db1-8c71-4e9b-b23c-407fc0763f7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list [0.113235s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.117371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/a0063a04-4d46-49fa-8408-f57b50c0aac6 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b994f96a-ef9d-4ff7-8718-edca68ba2ba9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a0063a04-4d46-49fa-8408-f57b50c0aac6 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.086796s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.103379s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.076618s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.126066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/28ff18ba-8196-4904-9255-03d44c78d85b GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bab7775b-8ef9-4acd-acfd-92fd68285ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 28ff18ba-8196-4904-9255-03d44c78d85b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.081197s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.135755s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_admin [0.132418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-56c4f34b-3187-4923-b718-6747e4835d27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.104302s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_471_owner_manager_can_delete_their_allocation [0.332587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/8832013d-6d6a-41ff-819a-04b287c50b32 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fbb9e543-84e6-4d61-bb07-378845edb198 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.087709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_member [0.069230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e81a444e-94c7-46b2-8f3f-39652ddc6bd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.105877s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.091785s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_get_observer [0.100064s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-33c118e2-4f9c-4eb9-bf7e-457def1da187 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.104352s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.098732s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_lessee_admin_can_delete_their_allocation [0.268036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/6afe40d0-ecec-4363-a56e-75067d38d97a GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-20afb561-6d49-481a-9289-917913893443 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.136307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6322d295-250c-4fef-b811-ba18df2d3e07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.095987s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.071190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c04724de-e507-4ea5-91d0-41dcda5e7b3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.187297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.102987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-afcd841b-29bb-446a-b416-f7e9b3e4d6be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.186372s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_lessee_manager_can_delete_their_allocation [0.258635s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/acb8ffc2-2b3b-49f6-a95e-e4d51cee8540 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d16acc69-5252-4a95-8b04-1d6a285fd98b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.143528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-10cd5449-4af1-4b1f-8fd6-5b2851a0f7ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.137825s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.216565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_474_owner_member_can_delete_their_allocation [0.178388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/bd3be477-c0dc-4b40-adf5-93db26b126f2 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-20c7a03e-51dd-4db9-8571-dcd985cc500c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.149090s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None [0.187310s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_member [0.267569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9789b7f1-ef26-4709-b176-e2abd9b2f60c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false [0.111014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.150352s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_475_lessee_member_can_delete_their_allocation [0.270300s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/2bf81f7d-2f8b-4ef5-8db0-2e5e87b0f14d GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3fb2fba9-c30b-4136-8c16-026086896091 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.250397s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4a4bd952-0aa7-4ccf-b937-7464273f36b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.178168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.205008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.144875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_476_owner_member_can_patch_allocation [0.307080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/72f6f6aa-d8d1-4d25-82b5-f895cdbe3c81 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7da21fb-2323-4f85-a95b-dcda6f5396ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "72f6f6aa-d8d1-4d25-82b5-f895cdbe3c81", "created_at": "2025-05-19T19:11:37.350747+00:00", "updated_at": "2025-05-19T19:11:37.497141+00:00", "candidate_nodes": [], "extra": {"test": "testing"}, "last_error": null, "name": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/72f6f6aa-d8d1-4d25-82b5-f895cdbe3c81", "rel": "self"}, {"href": "http://localhost/allocations/72f6f6aa-d8d1-4d25-82b5-f895cdbe3c81", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_admin [0.239317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0b56e24d-5e46-4ec9-8143-1ad8b03d1ff6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.210057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true [0.148063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.146836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.072742s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default [0.170794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_lessee_member_can_patch_allocation [0.320066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/68812a4d-36f6-4155-aa6f-07b11964c816 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-238b8341-0f02-4eb3-9ba5-bef959979cbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "68812a4d-36f6-4155-aa6f-07b11964c816", "created_at": "2025-05-19T19:11:37.673761+00:00", "updated_at": "2025-05-19T19:11:37.813642+00:00", "candidate_nodes": [], "extra": {"test": "testing"}, "last_error": null, "name": null, "owner": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "resource_class": "CUSTOM_LEASED", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/68812a4d-36f6-4155-aa6f-07b11964c816", "rel": "self"}, {"href": "http://localhost/allocations/68812a4d-36f6-4155-aa6f-07b11964c816", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.095751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.101371s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.088887s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.136577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.087517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_478_third_party_admin_can_get_allocations [0.264350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a5aa38d-e49c-42fa-9006-a80bd7452ca0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": []} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.070721s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.203781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.102665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.065893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.180068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_479_third_party_admin_can_create_allocation [0.296182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6ef15366-3d30-4333-923b-31e7ecf3df25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.069254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode [0.074910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_member [0.968819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-648c50e8-c96b-4bf8-b9c2-3a44925e1bdc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params [0.113565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.231516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_480_third_party_admin_cannot_create_allocation_with_owner_node [0.202241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bcd51b1c-fa43-4b1f-a5d0-0cf27f28972c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode [0.060071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_get_observer [0.198493s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cfff99d0-fa10-4021-ae05-f9acca194503 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image [0.062050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image [0.064064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_481_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.201001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST', 'candidate_nodes': ['1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f']} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fc165869-9bec-4c88-9291-cc9f35a4ef0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info [0.047928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.230510s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance [0.072784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_admin [0.235038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3069246b-6273-4663-bd40-ac98251cabdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk [0.052161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk [0.065207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates [0.201146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_admin_can_create_allocation_with_their_uuid [0.301261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5d5937f4-f5dd-49a6-84ba-42e93c6491a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_member [0.206322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fb1445ed-c788-41ae-939d-d4bde258945c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default [0.145794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_483_owner_manager_can_create_allocation_with_their_uuid [0.202745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b83c1db5-9877-4fb2-a914-f098007ec092 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error [0.147981s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image [0.359982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_driver_name_get_observer [0.270743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fc20d9f7-c79e-4864-9797-38bfb48ce2f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.144403s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image [0.120184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_484_third_party_admin_cannot_read_an_allocation [0.186652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d2ca7880-b07a-4589-9ca5-c2bca28b5386 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f299c499-3e57-40ec-9d29-4d4f5d24b174 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation d2ca7880-b07a-4589-9ca5-c2bca28b5386 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.096747s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image [0.104824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.067749s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_admin [0.277036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-03a29e6f-bced-4bc6-aa91-d23075842db0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.116745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.084512s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_patch_an_allocation [0.249181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9d03c247-730d-4590-a202-745f24abd621 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-32e5a084-3c8b-4d78-a2c6-1bd5585750a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9d03c247-730d-4590-a202-745f24abd621 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.160291s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step [0.179115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_member [0.251625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-dc838369-ae2c-41ae-893a-0a402da07c02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_486_third_party_admin_cannot_delete_an_allocation [0.184611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/06338c2c-6d8b-401e-8eca-6758c5d5fd3a GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e17f831c-9248-4722-9c78-ff4529c0d27d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 06338c2c-6d8b-401e-8eca-6758c5d5fd3a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.079943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url [0.127744s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.089011s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.086819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url [0.135957s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_487_owner_reader_can_read_node_allocation [0.227777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68892629-ceaf-496f-84c8-64eab5c40aa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e941c611-6c24-423a-825a-ad15a4a74336", "created_at": "2025-05-19T19:11:40.103031+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e941c611-6c24-423a-825a-ad15a4a74336", "rel": "self"}, {"href": "http://localhost/allocations/e941c611-6c24-423a-825a-ad15a4a74336", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_properties_get_observer [0.250962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d758cb94-c6cf-4403-9f0a-92eede86c5cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.133392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.120427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.209711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4c9a9b57-c09d-40e5-a0c4-301055d595b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.121529s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate [0.157843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode [0.052052s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_488_lessee_reader_can_read_node_allocation [0.357564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92f00a5c-a2c9-44ce-b4f4-d2e775de6dc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6145c28a-c93a-4cab-813c-484187c89881", "created_at": "2025-05-19T19:11:40.439220+00:00", "updated_at": "2025-05-19T19:11:40.440686+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "resource_class": "CUSTOM_LEASED", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/6145c28a-c93a-4cab-813c-484187c89881", "rel": "self"}, {"href": "http://localhost/allocations/6145c28a-c93a-4cab-813c-484187c89881", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.082249s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios [0.135806s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.044786s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.246619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-423ae2ac-d8d4-4fb7-8a97-e57c232eb28f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection [0.120673s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.037095s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance [0.102952s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_489_third_party_admin_cannot_read_node_allocation [0.288359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-74f3fd40-e141-4f26-a14f-a290f7eb86d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.201052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-66c52fee-c656-4b94-95c7-3b1fb2cd5178 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver [0.067068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.083685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.172690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c2331250-39a1-4b08-9a7e-23f688e74ccd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue [0.077309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.057958s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.111813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d75e6234-171f-44f7-bff2-07feaa2dc086 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_490_owner_admin_can_delete_allocation [0.316887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-da51ef02-4bb2-4b08-b367-759ab0cfd585 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.056394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.086161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.048085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.223445s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a8012eeb-68ed-4205-ae9d-7da50e5e1439 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.129356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.851100s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.040270s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.091907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.044246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.044355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.241717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c1012b9f-a9bc-4a98-956f-ae6e38635e2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.107316s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.092172s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.046428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.145090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5931526e-de49-4400-aa33-c0f25a23a353 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.056869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.134882s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.082134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.055809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.166843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5963d0b1-6ccd-48b5-b8e4-d16529bbc07c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.157016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.133145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.125034s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.163598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e3286cb1-c2ec-4c4d-9312-7f615a6dbe5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.052537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.041792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.048296s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.065469s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.261502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_491_owner_manager_can_delete_allocation [1.184478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-dfd92e60-ce10-4224-ac13-10e5f5ccf3ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.054839s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.269941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f0add01d-70c3-4856-8a7d-f938ecabc92e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.143063s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.049890s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.210195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bf17768b-dd16-4b29-baa2-9c43392a8950 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.058356s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_492_lessee_admin_can_delete_allocation [0.278796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-88f4105e-7e8a-4ba5-9232-0d2eb8286d60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.042804s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.031949s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.046020s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.456914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.232947s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-802cb2d9-76f8-4062-89ab-58d44a4f2a6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.075167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.103608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_493_lessee_manager_not_delete_allocation [0.314164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f7ff5ba4-1285-44ae-84e4-5517288ee8a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.152329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-aac39f35-af05-4711-8a86-f855781f0e2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.104061s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.297784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false [0.099949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.181852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5a1c7481-1801-4564-834a-1bd8096c89d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true [0.041927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error [0.058042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_494_third_party_admin_cannot_delete_allocation [0.304940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1b61f0d3-ca67-4496-ac60-483eaaf318df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported [0.084689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.298089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http [0.061351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.060546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_495_owner_reader_cannot_get_deploy_templates [0.278381s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b00b113e-b0b6-4e7c-ae64-0aaf73ba9f35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.118844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.246882s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.149599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_admin [0.155621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-39717e33-f49e-4974-a00b-f8391715cb4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.058056s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_lessee_reader_cannot_get_deploy_templates [0.318760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bbe99bec-d07e-4f21-93bf-c7a4e7416fd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.086158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_member [0.136377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fbb82f53-d065-4054-a692-d3c02a5a9fdd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.067378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.363052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.092096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_497_third_party_admin_cannot_get_deploy_templates [0.194213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f0d14c53-a507-4606-badc-385e6d0a177d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_get_observer [0.200582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a6dd8dcb-da3f-4ddc-a83e-87d4d067d845 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.048993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.104259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.263114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_498_third_party_admin_cannot_post_deploy_template [0.257513s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4e845d84-e2fa-4033-8acc-56de80feef5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.262773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2335c804-4cb7-4431-bd42-6ca5daa52e05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.122389s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.175096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.151564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_499_service_cannot_get_deploy_templates [0.219066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-48dbea72-8093-4d99-8f5d-c92cc94c7f78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.230829s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f5192ab6-2c7c-4938-a1d7-0a69456cb0ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.070219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.209053s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.096341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.149508s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_500_service_cannot_post_deploy_template [0.251230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8f2b649a-e3e1-4637-8b5f-21e86daeae4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.105542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.255182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-775969b9-e990-4850-b32d-918281fe1e55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.067236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values [0.030703s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.021124s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.150139s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.055467s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.030227s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.024383s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_501_owner_reader_cannot_access_chassis [0.306167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-149cc41e-c25d-45ac-8c3f-b9bf7b0414cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [0.061321s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.201409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_admin [0.300369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a997c50f-da5d-4776-863d-d058f8d8e5e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.036971s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.023394s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.050482s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.043059s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.024211s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.026515s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_502_lessee_reader_cannot_access_chassis [0.242612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-638185d0-4891-4af0-9214-7c3fee35c99d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.216363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_member [0.234110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4be46c4-5d83-4cef-a0a1-2fd5e34daf8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.074313s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.082438s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.181365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.059839s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_503_third_party_admin_cannot_access_chassis [0.251322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d5d7d949-9041-49b7-952c-b4187ffe2226 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_get_observer [0.221568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0944bfd3-8e7d-4624-9fff-89b65a81ccd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.081314s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.089600s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.177231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.053520s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.086447s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_504_third_party_admin_cannot_create_chassis [0.286876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f0f5746c-f304-4107-bd96-790171b70817 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_admin [0.264996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0b7c5afd-7633-4126-91a8-e102d8b027a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.054179s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.076020s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.062190s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_member [0.208030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce2d2fe9-05a2-4914-b6d4-57ae7f69d389 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_505_service_cannot_access_chassis [0.215308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-160e6f86-1ff7-448a-a415-38814b7cdf79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.067412s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.055436s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.053417s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_conductors_hostname_get_observer [0.227332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-573df1d4-929b-4249-9389-05c63a5a7311 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_506_service_cannot_create_chassis [0.244643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-389c88b0-5c16-4d25-bea3-829a99c9dca2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.639322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.109401s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_node_history_get_admin [0.255181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6e3a2b4-7c3b-4e04-8980-90bf227ed2a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "6aeb1bf2-697a-4327-ab75-070283c4706c", "created_at": "2025-05-19T19:11:46.563784+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6aeb1bf2-697a-4327-ab75-070283c4706c", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.135468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_admin [0.309211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-86440cfa-f7e4-4f23-afc7-57307a7929a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.161237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward. {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.561015s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.096148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.073671s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.064692s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_node_history_get_member [0.369023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05a9ddc2-c5b2-4031-9b45-2c9c1d23398c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "271032c5-c537-45e3-8863-c4a63ea6d872", "created_at": "2025-05-19T19:11:46.863031+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/271032c5-c537-45e3-8863-c4a63ea6d872", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.120988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_post_observer [0.191916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f1667b6d-8b7c-4b4b-9a07-94cbb6352c89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.080873s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_admin [0.154796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e5297a4d-769a-4576-8aad-e74cf3ab5892 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.110418s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.173493s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_node_history_get_reader [0.312271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae681c14-a017-4cc3-a748-0fe95fe73fb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "884c0663-b742-48ce-a009-7e8eecaa1a5d", "created_at": "2025-05-19T19:11:47.236360+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/884c0663-b742-48ce-a009-7e8eecaa1a5d", "rel": "self"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_member [0.179565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ff757cf9-53af-487e-b2b8-f7cb5a4df64a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.176847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.205747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.068084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.151974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_service [0.291102s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e53b01cc-1591-4406-9cf5-29611b000849 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "15ff7d1f-410c-4313-b191-105fb7245d47", "created_at": "2025-05-19T19:11:47.534842+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/15ff7d1f-410c-4313-b191-105fb7245d47", "rel": "self"}]}]} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.184603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.154653s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.109382s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.187397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_history_get_service_cannot_be_retrieved [0.298178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2cf00c3c-4d4f-4d10-bd2f-62f5b786ed4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.133949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.103326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.198116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.136668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_512_node_history_get_entry_admin [0.253689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6619f9f7-2e04-4e46-a56d-20f41545a1c6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe3c366c-382b-4905-a29f-84c36ade4518 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6619f9f7-2e04-4e46-a56d-20f41545a1c6", "created_at": "2025-05-19T19:11:48.104685+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6619f9f7-2e04-4e46-a56d-20f41545a1c6", "rel": "self"}]} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.137025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.196788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_get_observer [0.947592s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3ad801ee-d5e6-490b-82cd-1f214fa8ca25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.059711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_513_node_history_get_entry_member [0.266835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/f2ac32e9-557d-4f02-aec0-6b882d999e26 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-792e145b-70db-400a-84be-404fbd2ef563 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f2ac32e9-557d-4f02-aec0-6b882d999e26", "created_at": "2025-05-19T19:11:48.374257+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/f2ac32e9-557d-4f02-aec0-6b882d999e26", "rel": "self"}]} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.097309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.194829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.078210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.248089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/2a0811eb-9cba-44d2-a339-0ca46c973c79 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b92c769a-33f2-403b-ac88-35b19b6fec49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 2a0811eb-9cba-44d2-a339-0ca46c973c79 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.054727s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.121863s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_514_node_history_get_entry_reader [0.236870s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/487a6336-b8ee-4688-8eac-764ae25790a2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9334ac6b-2fd5-407f-81d9-e0f7d2fcc85d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "487a6336-b8ee-4688-8eac-764ae25790a2", "created_at": "2025-05-19T19:11:48.612543+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/487a6336-b8ee-4688-8eac-764ae25790a2", "rel": "self"}]} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.075473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_member [0.201230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/ca7720db-4e7d-451c-bcb0-8bd955d61098 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3043e377-5cb9-4802-88fd-08f31f854f86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ca7720db-4e7d-451c-bcb0-8bd955d61098 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.175060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.143596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_515_lessee_node_history_get_admin [0.213032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/0ca3dd2d-4046-4e2f-86b7-786f832e6c71/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3b0d4921-df3a-4207-b8c6-70ac96bb0313 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 0ca3dd2d-4046-4e2f-86b7-786f832e6c71 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.148570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.169892s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.201729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/26eee689-8439-4df4-863e-317101a7df1c WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5609e9aa-90a3-4a96-b37d-3a8a7e03a9ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 26eee689-8439-4df4-863e-317101a7df1c could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.077764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_516_lessee_node_history_get_member [0.237335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/57b69135-30d4-4b06-bbf6-a5283d4f4a14/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4a5528ca-890f-4cee-9732-01cb13e0e01b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 57b69135-30d4-4b06-bbf6-a5283d4f4a14 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.077627s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.181628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.226533s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/775d8355-8468-4935-b549-e4ed679ebc34 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5c0da342-d939-4e5f-97c0-db8225742ca3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 775d8355-8468-4935-b549-e4ed679ebc34 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.126806s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.086133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_517_lessee_node_history_get_reader [0.238251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d2a63714-fcb2-48f5-8810-c441c1774aa9/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-555f775b-9ae4-4c77-bfb5-6ec255ede285 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d2a63714-fcb2-48f5-8810-c441c1774aa9 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.189551s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.213811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/833495ae-991b-4597-a758-bbcbcdb18566 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3820af4f-883b-4b56-8f44-70a98c3e5a3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 833495ae-991b-4597-a758-bbcbcdb18566 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.118535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.159437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.096363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_518_lessee_node_history_get_entry_admin [0.214911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d06c8b71-2cf5-4990-a1d3-a2eba40f788e/history/7db4e27f-789c-4c4d-82ed-8f0365e47b20 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1de3c111-c6fc-4bdb-aab8-8019961d32d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d06c8b71-2cf5-4990-a1d3-a2eba40f788e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.196606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/afc24315-f191-4213-8c1e-89834ac2f4c4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7b7231ed-2e97-4754-9078-83d993b38533 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation afc24315-f191-4213-8c1e-89834ac2f4c4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.132421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.153276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.106428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_519_lessee_history_get_entry_member [0.232392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/9bc795df-3876-404e-b243-33fb75bc4f5d/history/c3eab87f-5855-4937-9fb7-243483435365 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e640f193-5da5-4867-9d67-ef6cbf2b5651 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 9bc795df-3876-404e-b243-33fb75bc4f5d could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.210041s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/73727063-5e2f-4c49-b787-824948cc1f7a GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d79a4107-a826-4907-b2e4-fe80d61336e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 73727063-5e2f-4c49-b787-824948cc1f7a could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.191873s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.178911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.060608s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.236085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/b68e29a0-968c-4ae0-85de-5a97fadda791 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ec3af5cd-5071-4cfa-a3fa-fcc48afaf488 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b68e29a0-968c-4ae0-85de-5a97fadda791 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_520_lessee_node_history_get_entry_reader [0.289759s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/5b62e2b5-395f-4c43-b1ee-0622bbde6e31/history/9934bca5-5433-48e7-a662-2c7278664903 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-54265659-ef36-43ee-8c1b-24f411ef8664 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5b62e2b5-395f-4c43-b1ee-0622bbde6e31 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.091549s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.210648s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.097484s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.120330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.202027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/bd3d5279-9de0-4bcb-adba-6e245aaebd06 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9fc35a61-645d-4eb6-b8c1-6efd50c9986a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation bd3d5279-9de0-4bcb-adba-6e245aaebd06 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.094228s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_521_owner_service_node_history_get_entry_reader [0.271274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6532a136-2635-4f1e-b508-7d8e32aa4d40 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3d98717-1f53-4183-9b7d-b7f32e28da45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6532a136-2635-4f1e-b508-7d8e32aa4d40", "created_at": "2025-05-19T19:11:50.307586+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6532a136-2635-4f1e-b508-7d8e32aa4d40", "rel": "self"}]} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.163118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.103089s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.111826s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.122156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_admin [0.264367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-991aa2e3-12e9-49aa-907e-067a73837138 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.077716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.102896s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_522_third_party_admin_cannot_get_node_history [0.268838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-65810974-ca2e-4711-bcfb-b0580e8b6050 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_member [0.169928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc98d5c5-f162-4256-8d32-12eae0604c06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.095651s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.129147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.101314s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.097546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_get_observer [0.144036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0ced7c14-99cc-49fd-91d5-efa21b20f681 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.099832s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_523_node_history_get_entry_third_party_admin [0.283714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/51965a11-e56e-4a15-a242-165a6a454bc0 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-91be7df4-7f37-4239-90c0-f50b85980862 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_accelerators.AcceleratorsTestCase.test_accelerators [0.152048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.090602s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_admin [0.181251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-770e339a-005d-4d8f-8fed-96f8fb1765ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.112703s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_524_node_history_get_entry_service [0.220978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/63c13612-57a2-44f8-a982-4ab291e9e9f0 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8eb7359c-c020-4c1c-9e6f-6c794de51896 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_member [0.104394s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-74b01dc9-9ab3-4dbb-a88a-844a7d0bda04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_architecture.ArchitectureTestCase.test_architecture [0.181961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_nodes_allocation_delete_observer [0.128840s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-76849393-87cc-44fe-a40b-1a3c14fcb267 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.143657s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.156246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_node_inventory_get_admin [0.236647s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/inventory WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c282286-7814-4aed-86da-8c7639a88cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.114410s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_admin [0.143457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e5056f21-971e-46b0-9b87-51e4d0f23c4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.110019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_member [0.108049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1e3b4311-4b49-4744-b2da-b5c4865a00f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_off [0.096719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.206109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.096014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_no_data_received [0.063084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_526_node_inventory_get_member [0.320401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/inventory WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e10744cb-72bb-4b52-9444-7deb278ebf11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.112745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.100484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.099689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_post_observer [0.337190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-24810ea2-0f9c-4eaf-8315-ca7a2a5d8727 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.096135s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.111335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.049116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.044427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_527_node_inventory_get_reader [0.304919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/inventory WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac113ba7-e836-4f0b-8bbb-5bdc213f50b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.075620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.147560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_admin [0.284172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ecba8739-4c57-47f3-b013-15364f1283b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.082520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.091229s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.054136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.078179s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.102677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_528_lessee_node_inventory_get_admin [0.303749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/a18606d3-3572-4370-a0b5-f6cdbea44b88/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7c4f9328-f31f-4457-9032-f1c950f4851d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a18606d3-3572-4370-a0b5-f6cdbea44b88 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_member [0.255636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-75383bee-09be-49fe-9fec-1da78e056468 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.150719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.111647s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test_store_logs [0.066672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_529_lessee_node_inventory_get_member [0.285671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/6fc3ecee-3cf1-46d1-a38f-fc142d460da2/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4c5a35ba-86fe-47f5-8175-a151d6f662e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6fc3ecee-3cf1-46d1-a38f-fc142d460da2 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_disable_power_off [0.053994s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_get_observer [0.252547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-49b1ab93-16bc-49d9-80d7-8d0855ce8e65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_ok [0.086471s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_unversion_url [0.049180s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disable_power_off [0.073004s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.026347s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_lessee_node_inventory_get_reader [0.284998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/767625dc-16bc-4826-8d08-960fea3f5e1f/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6c8db84e-2fe5-4c4a-aab6-4bd1d9a41c9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 767625dc-16bc-4826-8d08-960fea3f5e1f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_null_strings [0.629766s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.268336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e99cc8b9-8b0b-46bd-9327-a1950ff1f285 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1dce35a3-00dd-4ee6-9bc5-ef42de2fedda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.058980s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_old_format [0.125975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.107314s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_531_shard_get_shards_disallowed [0.287174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c5641b87-0af7-4270-a8d4-0c3f7a50a8f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:shards:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.277252s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e1344af1-aea7-4c86-a3e0-1aeda81346dd WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5e7cbf5f-73c7-4afd-a6f9-6371a88f1738 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.114349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.088183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.100383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.287831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/f17fdf81-f470-461e-894a-dc64eb896a42 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f4802109-64f4-4d55-b9d7-80df304ddffb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_532_shard_patch_set_node_shard_disallowed [0.332155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH [{'op': 'replace', 'path': '/shard', 'value': 'TestShard'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-74e05ad1-8284-467d-b0e3-48bf4b0befc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_all_match [0.156141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.104473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.289707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/9bd1dbb9-9220-41c1-9ef2-348780f82a23 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e17c24f0-f397-431b-8dd1-d143f948becd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_incorrect_hint [0.111931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_local_gb_without_spacing [0.144590s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.308506s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/242e8c2d-f31e-4956-995e-e1efe5cdce49 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d0db25e3-ece8-49db-be3a-c8242e78ea6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_no_hints [0.140184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_one_matches [0.122468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client [1.400086s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.263544s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/8be313e2-0361-4baa-be9f-a90366ddf4e6 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-49a2d863-e3b4-42ab-ad45-cd72ff4f08ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_root_device_skip_list [0.163658s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_invalid [0.126412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.211973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/0f3c0778-b113-4ad6-922c-0347e9daebff GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-303fe66f-ba94-4ce0-b0c2-a82ecdf067df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_533_parent_node_patch_by_admin [1.089438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/parent_node', 'value': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1493b97d-768d-4678-b63e-7b214e2ed949 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_string [0.189817s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.222680s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/9174dc25-9190-411a-b815-f81ce66af9fc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f13c726e-683a-447e-8d92-bba44748266b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_534_parent_node_patch_by_member [0.268541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/parent_node', 'value': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ed8ee3de-92a8-48a4-8aab-282097351692 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_zero_size [0.191046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.063390s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.063684s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.254376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/1f2e8ad8-cc64-4ccd-b2da-eb04cfd2887d GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec479889-a544-4422-9744-0d5787d69aa8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_no_pxe_fallback_to_all [0.062436s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.059811s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_535_parent_node_patch_by_reader [0.315740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/parent_node', 'value': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9b6ff4b5-0e19-4663-a8c1-3877d6b96fcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.055068s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_exception_ignored [0.055175s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_admin [0.267369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4609aee2-79d5-40e6-8dcb-dfe07dbb029a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_check_inspecting [0.116585s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_finished [0.062274s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_536_parent_node_patch_by_manager [0.282843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/parent_node', 'value': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ced88a9f-796e-4e1e-ad88-feece49ae87c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.091007s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_member [0.236970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8e9b4bff-604f-43de-b6f3-9ae0dbcbc69e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspector [0.063544s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_connection_problem [1.353929s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_clean_up_failed [0.086784s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_537_parent_node_patch_by_cannot_see_node [0.226337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH [{'op': 'replace', 'path': '/parent_node', 'value': 'f11853c7-fa9c-4db3-a477-c9d8e0dbbf13'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4c6e6baf-82f6-4ab0-b01d-34c3fe1f4af0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unable to apply the requested parent_node. Requested value was invalid.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error [0.059650s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_post_observer [0.223646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6367f609-c145-44e6-a016-5f1a093e4e0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_dont_store_inventory [0.070152s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.107239s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_538_parent_node_children_can_get_list_of_children [0.231868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/children WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ce20fb2-4bf6-40de-bf7a-5f4514880ef6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"children": ["3c3b8adb-edd7-3ed0-8e82-aab714d8411a"], "links": {"href": "http://localhost/v1/nodes?parent_node=1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "children"}} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_admin [0.197889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5a661273-d846-4a4f-a372-b63074ad2ba4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory [0.086144s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.075021s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_error [0.058065s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_539_lessee_cannot_get_a_nodes_children [0.264457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/children WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-51571b88-110e-46b3-b9aa-c98dcdfcbb11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.096680s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_member [0.260424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fe9b1330-ea9b-4111-844a-d35dc2f238f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.146593s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_get_observer [0.221890s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d80f62fe-f769-4151-a061-fa1555e8a398 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_540_owner_reader_can_get_firmware_components [0.262393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/firmware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5a836d1-46d7-4be5-ba58-316cdbdd9e5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": []} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_disable_power_off [0.116877s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_error [0.095364s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track [0.108752s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_admin [0.284700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-183f81df-4c88-4351-bd42-b8f455f00b58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_541_lessee_reader_can_get_firmware_components [0.311723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/firmware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17204f2a-efc5-4d08-ab25-cc436a11313f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": []} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.143325s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_standalone [1.218503s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_member [0.145078s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0ee8cf3f-6339-48a3-88d7-9dc3da70fd56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.096121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_ok [0.142784s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_542_third_party_admin_cannot_get_firmware_components [0.187660s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/firmware WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9f6f39c8-a6b9-49ce-94fe-0ab181e8133c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.058629s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_detail_get_observer [0.148930s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e2e795a3-dd48-446e-bc78-b4c345d41f22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.143865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.081956s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_543_service_can_get_firmware_components_owner_project [0.183506s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/firmware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee423e78-cc20-4a86-b786-455f6beaa7aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": []} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_ok [0.082936s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.136396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a0cd298f-e1b6-4547-87a7-1d16fcd2c370 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.155533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.078642s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.086656s] ... ok {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.122029s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_member [0.181431s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a1a6bece-7b54-42d8-956e-7b279f61a17d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_544_service_cannot_get_firmware_components [0.256600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/firmware WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b3bd56b2-163d-411b-94e3-6b016ba76e32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.111236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.109720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.132099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-24d589b6-8271-4b20-bd17-fb708fc8f9b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.159584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.132091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_545_runbooks_post_admin [0.233495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/db0115e1-3c07-4516-a9f5-a74c75802260 Openstack-Request-Id: req-85ab4fc3-de01-4609-a2ca-a659ffd4fdba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "db0115e1-3c07-4516-a9f5-a74c75802260", "created_at": "2025-05-19T19:11:57.816942+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/db0115e1-3c07-4516-a9f5-a74c75802260", "rel": "self"}, {"href": "http://localhost/runbooks/db0115e1-3c07-4516-a9f5-a74c75802260", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.178003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cb6e7eca-6e5c-44c1-b1a9-6dae1c2bc486 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.127422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.131660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_546_runbooks_post_manager [0.189538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/1182df6a-396a-49ba-aee5-01ffe5e294a6 Openstack-Request-Id: req-9dd18858-3bae-49f0-85eb-50fbf3e590fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1182df6a-396a-49ba-aee5-01ffe5e294a6", "created_at": "2025-05-19T19:11:58.010636+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1182df6a-396a-49ba-aee5-01ffe5e294a6", "rel": "self"}, {"href": "http://localhost/runbooks/1182df6a-396a-49ba-aee5-01ffe5e294a6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.101635s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.153015s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0aa69472-7b8f-4e07-ab1f-a99358a68925 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.161419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance [0.158914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.172242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b1d311ce-42bd-4b16-9af5-ed566c5014fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.133443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_547_service_post_runbook [0.270975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/e748b757-af13-4e23-b5af-b40ca6f37fdf Openstack-Request-Id: req-40490ec2-4d11-463f-8c5a-f0c802eabc2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e748b757-af13-4e23-b5af-b40ca6f37fdf", "created_at": "2025-05-19T19:11:58.280338+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e748b757-af13-4e23-b5af-b40ca6f37fdf", "rel": "self"}, {"href": "http://localhost/runbooks/e748b757-af13-4e23-b5af-b40ca6f37fdf", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.147343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.218030s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.095942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... SKIPPED: bug #2025424 {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.119418s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_548_third_party_admin_post_runbook [0.304203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/f8132275-bceb-4284-81dc-2536dd2a977a Openstack-Request-Id: req-87dd4fcb-60b9-45de-913c-23edf944f444 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f8132275-bceb-4284-81dc-2536dd2a977a", "created_at": "2025-05-19T19:11:58.591376+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "ae64129e-b188-4662-b014-4127f4366ee6", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f8132275-bceb-4284-81dc-2536dd2a977a", "rel": "self"}, {"href": "http://localhost/runbooks/f8132275-bceb-4284-81dc-2536dd2a977a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.272290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.484011s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f9640c1d-127b-46cc-b52c-600d4a34594f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.149324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.068941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-672b5ffc-f69f-4911-8756-00fab203c44a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.072290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1844ab18-2701-4707-8baa-0dd2c512cc8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.119696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_549_runbooks_post_public_admin [0.249007s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'public': True, 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-310efcdc-cfc8-4985-89c9-8912d610494d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_admin [0.074391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6362804e-8dac-4b66-af63-a0d59271e3f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.249297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.092919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_member [0.109777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4e9a3587-100b-49a1-b9de-ff9e4e094037 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.166555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... SKIPPED: bug #2025424 {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_550_runbooks_post_public_manager [0.271778s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'public': True, 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f7439084-bd46-4524-911c-661ef11c51f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_observer [0.175452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b733b2bc-cc98-4714-9b18-9a0fddbb436f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_lenovo [0.279645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.163569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_admin [0.109181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b0756c6a-fb2e-4c05-97e9-3056a50847d2 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-11619ce3-ae6b-4c08-86ec-34e3175cf19d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.124351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_551_runbooks_post_public_service [0.260351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'public': True, 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df0e3910-ea56-4db8-8ad7-07f7f0b756ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_member [0.134450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3ba8b0cc-ded5-42cb-a45a-186da3e1b098 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0de4f45e-35e0-48d1-81cf-64dcd3a8e6b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.136006s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_306_node_history_get_entry_observer [0.179067s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6dcf6cc3-a9f2-41d5-8a95-922777471ad8 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4bff7939-a0da-4fd1-b6c2-385fc180e5ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.147015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_552_runbooks_patch_admin [0.313005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e5c65400-d885-454d-9510-105c6a7db896 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-577c0e52-1c4b-4b3e-af46-5905de6baf7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e5c65400-d885-454d-9510-105c6a7db896", "created_at": "2025-05-19T19:11:59.532224+00:00", "updated_at": "2025-05-19T19:11:59.736299+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e5c65400-d885-454d-9510-105c6a7db896", "rel": "self"}, {"href": "http://localhost/runbooks/e5c65400-d885-454d-9510-105c6a7db896", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.140465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.099216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-079e0345-832e-4ff7-bed9-f2f5c0a12e5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.718222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member [0.143188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eb6d1f31-be09-437b-8558-74bd791470ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_553_runbooks_patch_manager [0.317297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/dac09365-8eb2-4d9d-93a7-249b3f5cd191 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed383641-3476-47fe-8edc-5c3fafcf04c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dac09365-8eb2-4d9d-93a7-249b3f5cd191", "created_at": "2025-05-19T19:11:59.873890+00:00", "updated_at": "2025-05-19T19:12:00.085839+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/dac09365-8eb2-4d9d-93a7-249b3f5cd191", "rel": "self"}, {"href": "http://localhost/runbooks/dac09365-8eb2-4d9d-93a7-249b3f5cd191", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.182449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.119884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2d999d4-250d-4217-b296-876ce38b260c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.068743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6b505766-69b5-440e-a023-7e624f952d87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.087376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-210b1179-79c0-42ef-a13d-f5f9e6d2b229 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_554_service_patch_runbook [0.267037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/fc63aa91-ccab-4610-9594-e1d11b60a240 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-183dbe46-a089-42fe-911e-54c9bd69d983 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fc63aa91-ccab-4610-9594-e1d11b60a240", "created_at": "2025-05-19T19:12:00.186737+00:00", "updated_at": "2025-05-19T19:12:00.349079+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/fc63aa91-ccab-4610-9594-e1d11b60a240", "rel": "self"}, {"href": "http://localhost/runbooks/fc63aa91-ccab-4610-9594-e1d11b60a240", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.264524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.138560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-02b82374-5d68-4a77-b644-0146268dab4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.098640s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f9346e01-d8b9-48c4-895a-01af2892773c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_555_project_admin_delete_runbook [0.252076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/f1ea87dc-6254-46e6-8201-f71c070b5993 GOT Response: 204 No Content Openstack-Request-Id: req-5ab18324-2abb-4380-8d8a-5160d0baf8e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.195858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.129703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c8e108d9-807d-4ea1-9f68-2165a017a3ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.076811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7101d9ad-e7ec-457a-88e3-95627b340e61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.069952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9808bb0d-bb44-45fb-b2d8-e28bd4585104 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [1.064764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.069734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a17321d9-cc61-45be-9061-f33295405b45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_556_project_manager_delete_runbook [0.312317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/77afa900-cc0c-4159-a57f-8bb5234831f4 GOT Response: 204 No Content Openstack-Request-Id: req-6d496ac7-c81d-4e4b-9068-472b1056dcb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.335772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.082129s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.155553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7bde2980-ac41-41c7-996a-c602c47d7ece X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [0.134253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_557_service_get_runbooks [0.266549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b53074f6-c44f-48e5-9c13-b8f75a38b9f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "b11d5cce-83f7-480a-b91c-f57c0fbab547", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b11d5cce-83f7-480a-b91c-f57c0fbab547", "rel": "self"}, {"href": "http://localhost/runbooks/b11d5cce-83f7-480a-b91c-f57c0fbab547", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.247858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.099018s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.183327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7370ec28-53fe-4be0-b2f3-aff77328d80c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.143961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.130142s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.162058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c3c8d7f5-2c7f-470c-af07-5d642518ca44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_558_runbooks_project_admin [0.238765s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-25444bf7-b737-405f-937c-41a7b24628b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "ceb25e1b-1311-4697-950d-efa885763210", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ceb25e1b-1311-4697-950d-efa885763210", "rel": "self"}, {"href": "http://localhost/runbooks/ceb25e1b-1311-4697-950d-efa885763210", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.145740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.200065s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_559_runbooks_runbook_id_get_project_admin [0.153137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/c288c683-ee71-4c6c-b814-8d7d98937477 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-770fbb0d-79cd-4755-a911-fb8b8259fbd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c288c683-ee71-4c6c-b814-8d7d98937477", "created_at": "2025-05-19T19:12:01.512466+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c288c683-ee71-4c6c-b814-8d7d98937477", "rel": "self"}, {"href": "http://localhost/runbooks/c288c683-ee71-4c6c-b814-8d7d98937477", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.190259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d7e61383-bbd4-4df7-b67c-011840ed3f8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.135256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios [0.141831s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.096873s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.177272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.117357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.314971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-563595cb-488f-4726-9bad-85ced25a9ac8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_560_project_admin_patch_runbook [0.362373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/616f9bf8-e594-468a-b921-7eacdac91a7a WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8deed47c-0c9a-42e2-9e30-8baeaac92439 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "616f9bf8-e594-468a-b921-7eacdac91a7a", "created_at": "2025-05-19T19:12:01.749309+00:00", "updated_at": "2025-05-19T19:12:01.954015+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/616f9bf8-e594-468a-b921-7eacdac91a7a", "rel": "self"}, {"href": "http://localhost/runbooks/616f9bf8-e594-468a-b921-7eacdac91a7a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.083254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.201767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.109895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_561_runbooks_project_manager [0.203754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ceefd9e-1683-4c0e-8da1-db26d55be63e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "961b2676-de5a-40b9-b193-4c4ed75b31fd", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/961b2676-de5a-40b9-b193-4c4ed75b31fd", "rel": "self"}, {"href": "http://localhost/runbooks/961b2676-de5a-40b9-b193-4c4ed75b31fd", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.254659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5433b22c-244d-4cab-849c-e1c144afae46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.124936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.229869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_562_runbooks_runbook_id_get_project_manager [0.148831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/6ebdd7a1-3218-4642-932d-d353491fe9aa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ccc0e933-c839-4ced-8bb5-10f165b7937c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6ebdd7a1-3218-4642-932d-d353491fe9aa", "created_at": "2025-05-19T19:12:02.264212+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6ebdd7a1-3218-4642-932d-d353491fe9aa", "rel": "self"}, {"href": "http://localhost/runbooks/6ebdd7a1-3218-4642-932d-d353491fe9aa", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.158781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_563_project_manager_patch_runbook [0.096489s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9099c121-ccfb-4b9e-b876-51fa0699dd56 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfa4af66-1a7a-4d84-99e2-b0e9d094ea0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9099c121-ccfb-4b9e-b876-51fa0699dd56", "created_at": "2025-05-19T19:12:02.369142+00:00", "updated_at": "2025-05-19T19:12:02.423225+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9099c121-ccfb-4b9e-b876-51fa0699dd56", "rel": "self"}, {"href": "http://localhost/runbooks/9099c121-ccfb-4b9e-b876-51fa0699dd56", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.282846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0e79c1d-9f28-4543-bb12-c8d18209b5b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_564_runbooks_project_member [0.084915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f094634d-9e2a-4b20-94a0-09a3b29f979d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "664444c2-553a-4dec-8bfe-959be7544cfc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/664444c2-553a-4dec-8bfe-959be7544cfc", "rel": "self"}, {"href": "http://localhost/runbooks/664444c2-553a-4dec-8bfe-959be7544cfc", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.106618s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.337800s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_565_runbooks_runbook_id_get_project_member [0.103341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/3e51d5d5-9566-43fe-a8fc-84e27ef954e8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7232f5f-098a-4c79-816b-49e570907f50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3e51d5d5-9566-43fe-a8fc-84e27ef954e8", "created_at": "2025-05-19T19:12:02.548795+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3e51d5d5-9566-43fe-a8fc-84e27ef954e8", "rel": "self"}, {"href": "http://localhost/runbooks/3e51d5d5-9566-43fe-a8fc-84e27ef954e8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.112581s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.096149s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_566_runbooks_list_project_reader [0.127859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19ce76c1-f6c8-407c-b6f7-ee00d4712293 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "3ab06c51-ee80-47db-ac74-d0e9e7025fc7", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/3ab06c51-ee80-47db-ac74-d0e9e7025fc7", "rel": "self"}, {"href": "http://localhost/runbooks/3ab06c51-ee80-47db-ac74-d0e9e7025fc7", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.261472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a12ea3a1-8fdd-4f60-a15a-05a034b19d0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.217593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_567_runbooks_runbook_id_get_project_reader [0.188304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/202f1884-a78e-48d3-adfb-43326c44b0c7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3736d371-7afe-4756-a335-4b2ec56b0d31 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "202f1884-a78e-48d3-adfb-43326c44b0c7", "created_at": "2025-05-19T19:12:02.807458+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/202f1884-a78e-48d3-adfb-43326c44b0c7", "rel": "self"}, {"href": "http://localhost/runbooks/202f1884-a78e-48d3-adfb-43326c44b0c7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.222832s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.231510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-de37e03d-be43-4422-86c6-d02b39bb68e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.226940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.168463s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.127616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ac1b86cc-0174-464f-831f-001e871d5255 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.101064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_568_runbooks_list_third_party_admin [0.244240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0812d914-5379-4cae-b505-bd6ac8ae54aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": []} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.152402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.117168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.168047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6ec3f48f-3862-41f9-80c3-18028310bef1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_569_project_reader_cannot_post_runbook [0.227474s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0be852ca-ce79-4dd6-a90d-c5abe4b5610c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.177411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.216297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.223152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ebb371e1-d0ff-421c-9e30-b7b8db3a1d26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.129250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_570_project_reader_cannot_patch_runbook [0.191039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/aaf7d286-d292-440c-bc4b-fdb7fddca981 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bcf6aad4-fec3-4392-9d9a-b87a541529c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id [0.137844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.250933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.216075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4be1b7e5-1aba-4249-8759-4330f0e26fa5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.097397s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_571_project_reader_cannot_set_runbook_owner [0.214119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/36ee7924-a530-48d6-a789-5bc64ab17111 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b8cc6f5b-4c77-4b67-9c03-2f6667066b2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local [0.100701s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.222888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-682d86db-3f7d-45fe-b33a-e73f12c0dd90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.243679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.113445s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_572_project_reader_cannot_set_runbook_public [0.225216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/98109416-9bd4-4898-9f7f-5039b9b9e86a WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a20ea976-b498-4f81-9d82-6b11b5955c34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.043870s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.089996s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_573_project_reader_cannot_delete_runbook [0.176682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/b3d4898f-b355-4c07-96ee-a50cc67920dc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-448ea478-1f44-45cd-b65f-c5540cdd1f24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.080825s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.248391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b35cd263-595a-4e48-885d-a6b1a9eba8d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.270321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.050499s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.033073s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.022785s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.022765s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_574_project_member_cannot_post_runbook [0.142103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-20499272-0cf7-4502-a39a-3ddd51ca134f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.047603s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.022748s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.023400s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.027318s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.031858s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_575_project_member_cannot_patch_runbook [0.149384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7acdc456-f1e7-48b1-bf59-45d6cf95ac36 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f613db8d-f255-48f9-b5a6-8e2c170baae5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.039137s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.285338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-16f367ac-c270-49a1-9ffc-735756e23072 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.057248s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.332216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.064147s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_576_project_member_cannot_set_runbook_owner [0.144001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/d0d92222-43c4-48ba-bafa-1facd0bfe90e WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2bda5a39-a392-4987-bb22-c2353a869a32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.056275s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.215400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-727f8787-9e0f-4d64-a285-030879eac1d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.215130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.225578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f07212a7-7b9f-43ff-92e4-17bb7355b00e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.253421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.211853s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3757f3b6-ceb2-417c-bd12-eb8f5c8aad94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.196240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.563209s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_577_project_member_cannot_set_runbook_public [0.622586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/1e65e4de-b353-4d40-84e5-bd7aa7536c9d WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a66dd3db-883e-46c4-b0cf-2cb3893f1dbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.054054s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.084886s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_578_project_member_cannot_delete_runbook [0.161218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/93105acf-db39-465a-bf3d-c7a294538478 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ea62829c-8b77-40be-b4ef-a12e8d4487f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.226703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.082078s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.061821s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_579_project_manager_cannot_set_runbook_owner [0.159225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7a38693d-7a5b-454c-a7bd-707584305dba WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-78c52504-3949-4fd4-94a0-27dc75345fce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.079361s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.051402s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_580_project_manager_cannot_set_runbook_public [0.154184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/fbe735d8-906f-4a04-9f39-59f3d096f986 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ffabbb47-53a2-49cf-9f17-8b894d1b213e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [0.054794s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.288830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.101643s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_581_project_admin_cannot_set_runbook_owner [0.158768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/eb46d87e-d90f-43f3-bc78-61b69acb7867 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-866ba1fc-5755-4027-a3cc-da2c6ec0bde8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.102409s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.213602s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.813075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-81bc1ea4-c26d-44f4-9238-ceb7f633751e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_582_project_admin_cannot_set_runbook_public [0.142850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/1f3ac50d-2dcc-4415-8330-b0219ea8880f WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-833a35f0-854e-4d74-8920-6ed377c7bca9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.111201s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.144700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.085742s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.172163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d51cd29a-c214-40a0-a6d6-ffe15591e984 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.114299s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.078071s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_583_service_cannot_patch_runbook_owner [0.216164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f9460e0d-b5a6-41f3-b552-e5cb5e19823c WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cce8e23f-a096-4999-9fbe-d2113854f8aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.072950s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.115320s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.185752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0106e860-04d8-4e90-9811-5f69fb55d84e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.074176s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_584_service_cannot_patch_runbook_public [0.214594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/8d91e971-6a92-44d8-9d91-3bfe5ec02f09 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5dee9b27-f8a4-4c03-97de-ff1f95b98f30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.079446s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.197205s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_585_third_party_admin_cannot_patch_runbook_owner [0.143020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/d92fc278-15b3-4a95-aa80-13b82b56a8a2 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ff7d56b7-8188-45e9-b81b-9d3d4830ccc1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.331163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-44cafa17-ff8a-4881-8e51-f402e2d57404 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.203007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.185915s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_586_third_party_admin_cannot_patch_runbook_public [0.133322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/8b458db2-8a91-458e-ab62-b420dd2ee0f1 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7fda6ed8-828b-4f1f-8df7-42e13ee26937 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.063694s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.070831s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.178385s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3bef7794-7cca-4fa3-81cf-7c3ec798649e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.167000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.075234s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.173438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-347db4d1-903a-4939-9c7f-53ce1dac5b56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.158130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.241823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4445801c-a303-418f-b427-0b7607923edd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.163631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.192105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5b2a786a-17d3-4ca3-bb63-f390d7baedbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.316696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.101686s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.150082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.157121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fbca859a-162a-4d75-acc3-26f27cc69df7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.253418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ada1d01f-b0eb-49d6-a8bb-84f994e09570 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.100279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.115424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d6598032-cf37-4e1f-a7e3-9a63b3763057 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.242722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-58b350e3-14a1-4246-a1b0-c9c42e73cb7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning [0.164825s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.123564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f507b38d-ccb0-41ef-a2cf-bf1c2143a0dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.351747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.077216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6dc44e97-454f-4e28-a0a0-1649c4257d27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:07.793580+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.112262s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.099861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce75a1a3-15d4-435d-871d-0c786268d851 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:07.896715+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.096577s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_reader [0.075672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ab1390d-83d8-4e8d-96a9-6ea05054d627 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:07.978167+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.315348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2b17b986-5a73-4a54-bdaf-8d571da78543 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_node_other_admin ... SKIPPED: Not implemented yet {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.134234s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.077015s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-596166f2-21ce-454c-8494-aafdd3a3d211 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "29fb6973-b89d-4e86-99e9-8f7576b6894f", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.116133s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.101501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76b41893-9baa-475d-af79-698c9546f966 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "9d46caf9-3066-4c50-9f01-744277c7b471", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.263726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5d902156-3a34-48b0-a71e-fa8a83e30fee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_get_service_project [0.100880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99f7ee0d-9f83-4f9c-9280-c319558d28bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "e37b35c8-2ed5-4fb7-bcfd-eb8e10db480e", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.166175s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.145545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-20d33e48-c54e-4f0f-9cf8-d193acb3ad75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [0.087548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-124bb29b-ac20-4691-9930-e6bd46a0a298 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.143793s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.092658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a1fa6ab-409a-4d2e-ab71-6615e24c4c86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.180199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1f20539e-d4c2-4224-969a-7c9df86a546e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.094488s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_get_other_admin ... SKIPPED: Not implemented yet {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.066126s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a19ba03a-5591-4554-baf2-1dd687dc095c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:08.692584+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-19T19:12:08.693548+00:00", "updated_at": "2025-05-19T19:12:08.696567+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "a54ca5aa-d686-479b-be10-cf14921c760e", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "a54ca5aa-d686-479b-be10-cf14921c760e", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-19T19:12:08.711002+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.104885s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.177210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e8b957bd-f7b7-4b0d-87ae-7d55c9b81141 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.105282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b498750-043f-4e2f-be85-f64bdafe5434 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:08.762203+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-19T19:12:08.764533+00:00", "updated_at": "2025-05-19T19:12:08.775702+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "d03d789d-e255-4044-90ba-6baf172c1a1b", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "d03d789d-e255-4044-90ba-6baf172c1a1b", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-19T19:12:08.811352+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.092392s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [1.090056s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.079830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c97eee56-75ae-49b9-a2b9-366736196a9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:08.863165+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-19T19:12:08.864239+00:00", "updated_at": "2025-05-19T19:12:08.874676+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "923daaac-cebd-48ab-a393-e0ccf4676931", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "923daaac-cebd-48ab-a393-e0ccf4676931", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-19T19:12:08.888026+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.095125s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.114164s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.083899s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54b20c7e-3d6f-462c-bd6b-2b6c8610fae5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:08.962841+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-19T19:12:08.964116+00:00", "updated_at": "2025-05-19T19:12:08.967241+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "6e70f77b-6668-4fd0-a3e4-632a4e3dbe5c", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "6e70f77b-6668-4fd0-a3e4-632a4e3dbe5c", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-19T19:12:08.981876+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.204171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-feaf38f9-a111-4e82-a967-4b486a242a7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.086218s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.151257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92768368-037f-40a9-9cd3-6e605f3ee85d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:09.068456+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.104139s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_default [0.280059s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.091754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-997fb54b-0d7d-451e-8e05-1fdc60b1110c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:09.202346+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.274317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2e85d9f0-4e80-4670-913e-26000b7174cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.123075s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.073667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8c99c58-fe24-421c-950b-865c0c8ce17e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-19T19:12:09.280241+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.104100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-403a8f8a-4ec3-47d0-8f8b-f50cbdddc8ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.157505s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.194795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-90f3184e-8f5a-456d-b2ac-dd68dfdb62ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_ipmi [0.279788s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.121108s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f80f544d-4a78-4d81-99ef-75fa596205f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.122564s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.174552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e29b3190-b1b9-43c4-a13b-7d21703ee7cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.140976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/conductor_group', 'value': 'DC04-ROW39'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fa30c276-09c2-4b8b-94c7-0c8f2ad18c0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_redfish [0.238843s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.187905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7a2bdc77-8809-42b0-acc8-0da99472d6d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.110423s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_node_ident_patch_member [0.190304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc42cde3-b343-49e4-87a9-47807d43e5fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.430923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.180114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a99790e3-86b5-481a-b0d4-bca2a1da1052 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.141984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-20c49511-2701-4a36-ab25-0b75e5754696 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.161365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.107455s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_node_ident_patch_service_project [0.119737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-afc6b602-b3d9-456c-992b-2f421e0b7627 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.172452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f763593-adb5-44e5-b628-28a9b3dcea2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.143770s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.086181s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.094260s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.146518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cfa902e1-7d5d-4e0c-8176-ab24ef61bd69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.151866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.190743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc248480-b12e-48c6-9d78-903b9b192628 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.100980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6acd9158-dd66-4ae9-8d45-c1a0e088629b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.125976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.078844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e2969d9e-8648-4147-9649-acd4d97f5f9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.153371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.161668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-911bdf6d-ff6e-450f-8974-96ec3673ef8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.127763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.083285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-98227c02-2b90-4b1d-a7a2-fd2437a6eb61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.077216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2f1ea932-a445-4824-8f4a-927e0929cf85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.114631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.069188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc20acd9-f7a5-4196-86ba-9e6ec34cfd9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state [0.205061s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.226260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d4756ee-acac-484b-8f3a-814355e74945 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.102452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.088414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.127893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_default [0.083594s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.183972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8c7b8cc4-be28-4e9b-8995-4e7b0df7610c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.190791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cff9b9a4-3910-44f7-9b14-82a995bf26cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.092530s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.161210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.168425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f698e768-7d3a-4eaa-b5ae-193cb82278e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_redfish [0.093644s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.185697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-15599250-89b1-45ed-b9ee-66c7c0a4d156 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_ipmi [0.096709s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.190183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_redfish [0.086347s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.166697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0c8512e-6b71-4d4c-9baf-a9bd9f9cefaf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.076795s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.177075s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.077811s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.170238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b39c1537-825e-4d37-9a66-1f09320e5102 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.112339s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.102474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.181517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f91e5d0-d197-4496-9284-c15b8ea6c4c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.623246s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8dda3303-7a56-41c6-8f2f-64fb4322410e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.076630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.116868s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.224357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e06cdf62-523d-49fe-b247-f98736de9231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.210757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c9bb6ada-c620-4ca3-b3ff-4059d4f0bbf1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.178992s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.153716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0169bb23-b259-4883-9d20-61d335039eb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.143126s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-aeea6946-a478-40b7-96e9-6e972b5ff15e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.654889s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.121352s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.199483s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad6c778d-bbaa-4513-929c-517af14365d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_maintenance_put_member [0.151639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-98e989cb-f790-48ae-b5ee-e969963ef216 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.156558s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.160433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.135773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1a43b2a9-bd8d-42ac-8b5b-d1e3ac405554 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.170775s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_get_observer [0.275908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6b6a4787-3ce7-40c6-ad41-64fa2ee448f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.077813s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_maintenance_delete_admin [0.174271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d3088991-8345-48a8-86b8-750ea5af2d54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.077691s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.072675s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.134809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-80834f31-7833-4afd-8cae-0ddb6c8e1eb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_admin [0.212398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-52d36303-bc1a-4868-b617-c6045918181e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.434748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.074959s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.069353s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_maintenance_delete_reader [0.156906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-878c69c9-79eb-49b5-9f9a-d221a4f3f35d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.071599s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_member [0.196753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e818986e-a08e-499a-a2f4-abe11e8ed6dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.086876s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.155757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d4f5a2bc-dd32-46ee-b72d-b1ae62427118 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.102898s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_states_console_put_observer [0.211009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-850f5f99-cd36-453e-bac7-959bfa165b69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.160115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1098e551-fcd8-4b10-b202-fd335451f273 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.105631s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.485748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.107460s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_admin [0.201891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3511560b-6d19-4465-96b9-9c4bff3d551d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.178022s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1997ee0b-1bc7-464b-918a-fe2f8bcb70cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.103631s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_member [0.199607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-28157e23-7876-4ab2-bbae-432a01642849 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.110580s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.224212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-af08ac76-eedb-4180-bad7-2de434e7cacf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.430935s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.110990s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.150467s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b9e183de-c988-4cd4-98d2-727be69cc66a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_methods_get_observer [0.225219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1b13393-095d-4909-8333-9de7ee411a54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.118320s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.138042s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.174943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c028453b-bffb-4995-967d-13887108e2d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.284434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_admin [0.255152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8d89f396-47e5-42cf-80ec-12cd2186d7df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.152537s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_management_boot_device_supported_get_admin [0.158514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0341aaa6-8c16-424b-a213-634a0aaf2312 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_management_boot_device_supported_get_member [0.151934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-07cb7d27-b73c-48bb-9244-6b876ab43e89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.324572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_member [0.270219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1e8ce911-8b7c-4d7e-a4be-9f149910c83f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.210102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.103861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.136732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b6e925b-5a95-4e6a-b9cd-c7a0813f0fb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.119146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.178560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f687fa28-b1c5-4a7d-99d2-a5bd0b559183 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_get_observer [0.294503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f83bc46f-5fbc-4186-adb0-29654de1a8d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.125170s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.324548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_success [0.132813s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.189539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a15442b6-1f34-4eee-9329-88b9293b3904 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_admin [0.213916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-28888082-376a-4f9b-8bcf-74c3c34987b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.192031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.105689s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.152025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1df9c99e-1e91-4c09-b702-f0c06e7a7161 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.107980s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_member [0.168878s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-13c5496b-373a-41e9-a600-f745f2f9fa0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.195590s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.082177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.048633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.054495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.217427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3767a94a-6dfa-4c00-90df-1cf4a6f75736 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.052653s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_post_observer [0.225175s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4d90b70-9967-44cf-abd5-0460e2a6384f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_get_member [0.168487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ec1e768e-b03e-410a-a035-e7ff73ca1485 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.348990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_admin [0.206772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0a10551-56cd-4168-a8cb-2014804652fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_get_reader [0.199089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5aea6d4-b3bd-4e91-b48a-ee8cd6f3f154 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.359700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_member [0.177173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-232710f6-a87a-465f-9ec5-4b1530b40529 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.202402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.055778s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network [0.054867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_power_put_admin [0.158436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d2dc7955-2a87-40c1-9603-031b1dee3e8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.046636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.068928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.193746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_power_put_member [0.168172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-99b155e1-1dbf-4fbd-b6cd-0621bf8f293c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.087189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data [0.054828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.033860s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.160307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power on'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2c99b381-9db8-4dbd-b156-4bfc7a6c023a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.059642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed [0.062564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.340977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.064182s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_put_observer [0.629623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3b8cd5d7-ea46-47d5-a29c-a29cbda3fbd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_boot_mode_put_admin [0.206055s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-04717e76-f4c8-4cc4-860b-d5816006f849 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.090320s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.134795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.072506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.046821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_boot_mode_put_member [0.174813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-815b80e4-8ab1-4f1d-b106-962ee6069935 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.045432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.140186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_admin [0.220720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5644f615-f19d-49c0-892a-32f71322a859 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach [0.047823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach [0.043170s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.148479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode WITH {'target': 'uefi'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-09d75340-6e32-4626-8155-efc3fdb42231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.149593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list [0.107509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.044607s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_member [0.231869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6cad4bb7-3771-4790-9373-4c62225d4979 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_secure_boot_put_admin [0.151392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7ea17552-8653-4bf2-a441-e8dd75245dec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.124257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.064276s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.074977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.063654s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.057497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.078822s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.190531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d660034d-06d4-474a-9bb4-bab9c474e1f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.043882s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_vendor_passthru_delete_observer [0.232734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6508c81d-bf95-4a73-b706-51c13718f902 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.064725s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.075160s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.102720s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.070037s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.206836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot WITH {'target': 'true'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d6430938-182c-4f2b-9d52-1ee42df33b73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.076227s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.100839s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_admin [0.280691s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b35e402e-2108-4a08-90ce-bed1ddd57f67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.114037s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.105179s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.210654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-103754f7-c99f-4d67-a94f-21f70aa1a0cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.103289s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.143091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_member [0.211099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f203a4c1-e7bf-4264-95d6-17c96bbc4d67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.097449s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.090797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.214089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-34bdb99b-1d51-42e7-a6c3-3001eb4172db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_get_observer [0.142844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e82683d5-b407-497f-a605-b3ae22241d75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.127195s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.136266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_admin [0.145301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1f3ce3d2-1c55-46c2-804b-93afe9ef76a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_states_provision_put_reader [0.197031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1a5dffdb-40f3-42b2-ae7f-c0ceffcba0d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.118009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.167632s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.063794s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_member [0.136329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d490dc74-8f51-4875-889a-fd36cd2b9baa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.109771s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.087703s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_states_provision_put_service [0.183615s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deploy'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-89c57be3-6fd2-4d64-8ff3-6422b8a6acc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.072437s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_put_observer [0.147364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-df6b1d56-70b2-4353-bfbd-651a1748ef8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.129274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.066280s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_states_raid_put_admin [0.172511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-108aebe0-890a-484b-b7d1-34c93415ed44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_admin [0.141883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-987d283f-dcfd-4c6b-afc8-20d375bdc29e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.081863s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.139076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.076629s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_states_raid_put_member [0.169640s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6524092c-e588-4888-ab05-e21b8d45e6d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.116988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_member [0.150988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d1001dac-1d99-4fc9-99c1-5cbbae627c37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.094271s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.102349s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_states_raid_put_reader [0.200675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid WITH {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a4f22679-46ff-451c-a110-de7297db6063 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.206410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.120040s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_delete_observer [0.290296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a38719c3-0e0a-447b-b1be-80c0706597bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.130875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.086682s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.171923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-66c1a3e7-4495-45c5-a289-d902a23da67d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.102374s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.124015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_admin [0.183018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a3c23257-fa15-447a-aca4-5f7ca3beffe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.110562s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_member [0.158696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1d2b8c65-ed61-467d-85d2-d0eae53ffbe6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.115042s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_put_observer [0.138695s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6a744337-3602-4812-8c7a-f65bdaeee88b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.160164s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_admin [0.161451s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bfe4459d-6dcb-411e-b0f6-ddf2f3fba5ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_whole_disk_image [0.168053s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.630732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b69cbb1b-6eb7-4820-97ae-48f83ebb3819 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.608184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_states_console_get_reader [0.072050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9094680f-5a55-483c-81bc-104d23888653 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_member [0.194266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-83cd0aab-34eb-4e77-bb9a-d51d6fdbceed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.091271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3dfcb167-d515-43b5-9532-4eafb9a9ffc1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.108710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.081965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.090522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c6f55e32-625f-487b-9174-b309fbf971d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.068918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2e28fe2d-b92a-47fd-af04-ce53212007e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_traits_trait_delete_observer [0.200445s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-53df10a7-c99d-4009-9ab8-1328d4f95ae1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.092676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.068582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-37c6f51a-1baf-4082-8503-e3bfd4d97995 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.090663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.063669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console WITH {'enabled': True} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a04274bc-8520-4cd4-87f8-9f49a03bf3b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_admin [0.145040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-54552c2d-760c-4be9-9280-28418b570610 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.070072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8a01a6d8-8d9a-4798-a13f-dc7dfc7d763f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.093238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.066815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c255c4d7-f0ce-472d-806f-3d490a3e0e3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.085856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_member [0.170639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-918e67f4-e0d0-4b78-aefd-2dc6f4c9b81d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.061712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d73a208b-c2e0-4fdf-93be-589f1bebacff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_normal_boot [0.710747s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_with_disable_power_off [0.090163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.101760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ced87792-7560-49b2-b342-aeff85b9923c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.126057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_get_observer [0.208340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5039715f-6ae4-4bbe-84a6-9ba1a21efe7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.132019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec202b77-7b63-4ae4-8c3d-0d275f5d9357 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot [0.241500s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.120102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.080511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8bf65c07-30a3-4dc8-a4b8-110773aecd27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_admin [0.145310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a94389e3-5973-4ad2-8a26-1842e0a4e0cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.065945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f3eb0ac8-62f5-4882-9167-5c409fb36d05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.081974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.070336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fcf87bcb-4aa1-4928-b3ff-fd3a4f6be510 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.095094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_member [0.140903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-299e5af3-5021-410c-9d0b-bdb8dae36857 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.241351s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_vendor_passthru_post_reader [0.100196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cfd1adfb-f6bb-4ba0-b512-4c33e9a2ad5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.060017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-307b0e1f-c6cf-45c0-9263-d55b4dd8b75b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_post_observer [0.155180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f54b5b5-c7f7-4e74-81be-66fe55f89e8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.181862s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_vendor_passthru_put_member [0.111289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3c60bc43-c705-41c5-9bfc-0edbd04a0fc1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry [0.091376s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.236915s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_admin [0.138680s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-72163cd2-a035-4d56-ab21-b9ef68df8b10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_vendor_passthru_put_reader [0.091632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-048a8228-661f-4d6f-a565-1423fb839c90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.078425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4a673d80-81c0-4416-97d8-a6a9f6207015 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_member [0.132523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2cd9f9e5-4a0b-49aa-bc5c-e21ed1bcfda3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.160542s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.085515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2519bd7-30b6-4ae5-8854-8ad37cf0703f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.242514s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_vifs_node_vif_ident_delete_observer [0.135172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4dc17d5-05c3-4d85-83ec-8e5e3bdafa24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.079530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-49707d5c-0641-4c9d-b05f-63101241dd6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.157551s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.050754s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.072004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18cb5986-8cbe-44a5-86e9-4e9554d86614 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.134137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_admin [0.113739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-316f9e0b-3e1f-4471-8da6-801546fffd23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.059172s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_member [0.057258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f4553a59-c5be-46cf-8df1-c58b4c612820 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.082047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4e485c5-b819-4053-9963-98634bb4ce38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [0.067531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0bab87b7-ee55-4222-acd7-8a3aa34b5317 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_get_observer [0.073958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f3ab2cd0-66be-47de-a91d-b7a77c1a89a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.106125s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_no_debug [0.169692s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.082113s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8373ee70-7d87-40a9-b94f-1429c0dcffc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_111_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.104665s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.081290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-87e7a876-a93c-4d6a-a60f-a2c1455b19c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_admin [0.067188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-05ed0dbb-2131-4788-ae26-9a20848e9543 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_with_params [0.190682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.070586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5a9f7003-b6a7-46d7-8d94-d66e59d1a8a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.122217s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.070346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-afb78dd9-e04b-464f-9c5c-8e5d7963e79f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_member [0.082085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ba705ac3-a90c-4250-956c-6fd28fca7ea3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.118915s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.114699s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_traits_delete_member [0.072020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-96374488-3605-4b91-86b1-edf8afe95c9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_get_observer [0.079785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-597f278b-caa1-493b-b782-6179089f27c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_correct_vendor [0.098376s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.111748s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.097634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b8eca1bc-65de-4697-9f64-c2efc0e1f5b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_admin [0.129384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0f2f283c-2934-454f-9e42-e8b1ae1427a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_empty_media_type [0.088133s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting [0.033784s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_errors_with_lack_of_support [0.153068s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.030912s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [0.032874s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_member [0.155336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5dfe8cd5-5be1-4576-9665-09664314c593 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.046476s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_inspection [0.113932s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.256929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c670ca44-4aea-4fb7-8765-14290d3dc643 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.036990s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.047478s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.075810s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.035233s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_local [0.097099s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_post_observer [0.233751s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b700bcb-6b29-4faa-b495-a84a4014d088 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_traits_trait_put_member [0.190552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3be24af0-63ce-45a5-a771-d49217f256e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_missing [0.111460s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.130193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d5b66482-23b0-456f-b593-800d03bfce7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.072168s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_admin [0.170401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6466f8f6-252b-4528-b595-644a48b00a1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything [0.288862s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.066717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-342c3215-b0f9-4d7e-bd9a-fad778e3256c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.086884s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.056633s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.065279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a908d2eb-c8da-4d6d-91dd-a1c2a8575f39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.045951s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_nodes_traits_trait_delete_reader [0.059600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bf5d4989-2f3d-4748-b6a9-816eaf725000 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.041427s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.106610s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_member [0.207434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a8013dc2-063a-410c-bb28-214dc69ad973 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.046601s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.082265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-31da714c-f462-4f23-9689-ef45bedb808f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.041073s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.114540s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.036645s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.056743s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_nodes_vifs_get_member [0.128466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5b716a96-f37f-4669-a220-fc3a67e981c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_detail_get_observer [0.191435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4e1bdb98-6592-4ac8-bed5-1ba941c12228 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.105191s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.063701s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.114061s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.093114s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_nodes_vifs_get_reader [0.194255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-356378fc-359d-44c3-85be-351532baf4d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_admin [0.207695s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b1ed732f-f590-4dc6-8973-4e6ce77d6434 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.097157s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.137816s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_nodes_vifs_get_service [0.135796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6dcd4439-1aec-443e-8dda-d97d138a2ede X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.081081s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.063062s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.143278s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.137766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4a9eebe4-8d1d-43d4-bd2e-9a2f3812e6fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_member [0.248515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2fc91ad5-95bc-4579-b7af-f4189364c3e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.074601s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.060331s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.148057s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.071124s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.163174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-12116d63-4036-43b2-a11f-046a527c357d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.090776s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.070144s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.065369s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.069562s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.076804s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.066221s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.063842s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.526990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95d0f39b-958e-4bfb-b406-a44fd4f7075a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_get_observer [0.709504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-80b0d045-8028-4719-a2d4-8014320a8a80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.076547s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.070177s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.714732s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.141268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-69edbf64-0dbc-4983-ad08-1116c5529fa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_admin [0.155663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d67cb27-64df-4905-97be-08aef9dad67c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.077077s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.086997s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.064004s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_nodes_vifs_post_service_project [0.137357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-33431e10-71fc-4307-8572-bd7534486d97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.088496s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_member [0.161082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-44b19c98-7dd0-4375-848f-dff976da65c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.086645s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.102419s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.140110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7211c4e8-632d-48b2-8e03-1c37543b4d9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.097418s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.085080s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_patch_observer [0.172503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2f3b4a54-eb32-44fc-bdd5-5355ff8d8634 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.167886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-50a9cb6e-de76-4b33-916a-0f0256de223f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.156501s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean [0.123477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_admin [0.134435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-de58f525-c730-4418-8802-35d7a7bc1711 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_nodes_vifs_node_vif_ident_delete_reader [0.132183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-118dd090-28df-4151-ac5f-e27ce8490838 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy [0.140298s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_member [0.144895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-afeb8129-695c-40bf-9a3a-b1e86be76348 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.218142s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_nodes_vifs_node_vif_ident_delete_service [0.141197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc7c7254-d1e8-44f2-a76d-4c6adaa455ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.121819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_portgroups_portgroup_ident_delete_observer [0.133446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f161bacb-c5ef-447f-8798-448e4d85549e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.076516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller [0.035711s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller_no_controllers [0.027140s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_admin [0.129988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8bfe1986-61df-484d-a6a1-3e22f166d92a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_controllers [0.043084s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.244633s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_empty [0.037720s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_storage_controllers [0.053341s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_nodes_management_indicators_component_get_allow ... SKIPPED: Not implemented yet {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_member [0.148792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-09866b76-3569-4d7b-b3b3-01fd860c9ebe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.039571s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.030324s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.168719s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.025437s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.032887s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: Not implemented yet {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.035233s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_get_observer [0.151290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-681ffc3d-b0a0-4df9-8b89-4253ab0c4e58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.045218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.045869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [0.039364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.057148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_admin [0.193112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad40e0a2-f92c-4c4a-8d76-70fa969dd1b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.055131s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.169742s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe3e54e8-f887-43b3-a4ef-e77ee8285748 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.050598s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.089667s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_member [0.215357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-88390a87-8cb6-4e3f-9ce9-ea75b2aa8f0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.045906s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate [0.047539s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_portgroups_get_member [0.237588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08eb8b96-0f5a-4254-abc3-448bc86fbf69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset [0.063095s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.701290s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.075672s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_nodes_portgroups_detail_get_observer [0.223977s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea570625-7f10-4a36-be04-9632047136a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset [0.047142s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_portgroups_get_reader [0.204918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b0df57a-2e46-494f-9d21-cc7befb803ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.060859s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.183607s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_admin [0.201203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-442a48cb-b31d-4009-bec0-043db954d415 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.142152s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_portgroups_post_admin [0.236639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/908e91f9-ed46-4173-8d7c-d5ab45e1c90c Openstack-Request-Id: req-6c855e10-2de7-4afa-8ba1-4d0095788ed0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "908e91f9-ed46-4173-8d7c-d5ab45e1c90c", "created_at": "2025-05-19T19:12:26.237383+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "links": [{"href": "http://localhost/v1/portgroups/908e91f9-ed46-4173-8d7c-d5ab45e1c90c", "rel": "self"}, {"href": "http://localhost/portgroups/908e91f9-ed46-4173-8d7c-d5ab45e1c90c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/908e91f9-ed46-4173-8d7c-d5ab45e1c90c/ports", "rel": "self"}, {"href": "http://localhost/portgroups/908e91f9-ed46-4173-8d7c-d5ab45e1c90c/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_member [0.193426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-24626815-d147-46ad-9998-6b19a35b42c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track [0.109800s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 [0.347767s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.051627s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.115483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_portgroups_post_member [0.212458s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-772cf7f9-df5d-46ec-a94e-fc8bd7c63787 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b [0.068694s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_get_observer [0.189347s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d117fe00-7ee8-4442-a0f5-6e7e6919bf0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.038234s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.104417s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.051927s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.041734s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.218441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/portgroups WITH {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-013170b3-e51c-4edf-8e6d-a920efb4c4ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.039422s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.115545s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks [0.039327s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_admin [0.227912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6cbf4f09-2696-4f38-a804-d11ba863f084 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.056484s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.113140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config [0.036248s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.033385s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [0.193578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59de5212-17ef-4d12-8c84-87100792deb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:26.809646+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.043086s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.125745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.048914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_member [0.214902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8ff19e6f-fbab-4050-95b1-75b4872db69f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.054168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.116628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network [0.061470s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.238890s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ec7a46a-1d23-4d4a-b234-a3cff03a7163 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:27.011849+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.067032s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network_fails [0.079332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent [0.047330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.077143s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_post_observer [0.290808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-84eee15e-d0fe-46fa-bb27-5da2ac8ac41b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_disable_power_off [0.077268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.062667s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.175102s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-954254f0-2406-4e2d-8e62-ab1fce16ff76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:27.250827+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_get_power_state_fails [0.043781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.063008s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_no_power_on_support [0.048228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off [0.048729s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_admin [0.190342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b6b1a2f8-6d2d-4ec0-a9f3-56122a3b43d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.160776s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf9cd967-6c80-4ad0-a6ea-ec1ba69b5f0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:27.390929+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [0.115198s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off_failed [0.068195s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_off_fails [0.084045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.115615s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.155348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f41edd91-682b-40d0-95e2-5f081ee59263 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:27.553915+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_doesnt_complete [0.047386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_member [0.199752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-63da598c-f529-4208-97ba-d132f8af60cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.086917s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_fails [0.062774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_race [0.051804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_detail_get_observer [0.134231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8ad33b70-92fe-4995-8afc-600d42568fc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.051604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none [0.107739s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.210030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81e13dbd-6c05-47ec-813f-2d6282f094c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:27.709775+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_disable_power_off [0.048844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.066083s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.049958s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.064745s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_admin [0.174813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c0b24a17-c102-4458-991e-3d69f5ce436b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.065460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.077370s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.052962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.246092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e385b643-106d-48df-8a37-126e6942a5e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.059011s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.084619s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_member [0.152571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f8ee010-691d-45aa-8d97-7ccce6f31d34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.059297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.039502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.108046s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.035981s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_get_observer [0.137522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8388ae0b-f55f-45f5-b6b9-1c0c99cb917b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_service_steps [0.059713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.243456s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b715e6a0-2757-414f-b3a5-f505ed548c25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.159592s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.126373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_admin [0.179465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e4dbbe12-94ca-4fd2-b0ca-a7f801c137fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_member [0.077827s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-75915622-2ec0-4261-991b-8cf715bdb342 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_frequency [0.165615s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.238632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1d3731d6-43fc-4ff4-8074-01bdc01afaeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.165074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_patch_observer [0.076508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3c9306e4-d1c6-440d-b07f-f77840f2df42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_admin [0.063655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6d0add30-3eb2-4ab2-a62a-13a79d50e55a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_instruction_set [0.116800s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_member [0.082950s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5d2b25c1-7920-4d4a-af0f-f7fdaea1617b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.233768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-29f8e5ff-e212-4b06-a2cf-3789b4c92529 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.117796s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_ports_port_id_delete_observer [0.077083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4142f7b-6341-40f6-964f-c1450e866d05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_admin [0.084744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-11ee2193-3e48-41dc-8f71-fb946c981f17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpus [0.097600s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_member [0.097659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fbd983f3-443f-42ef-bb12-ae3a4c201735 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.107423s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_portgroups_portgroup_ident_delete_member [0.229350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4e4e78ae-78d3-4ca2-9e31-82fab9f5e3f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.118358s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_get_observer [0.140688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d30d033-85ee-4783-9ae6-7bc1c2d69e06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.638583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.213107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3f16dbfd-e6be-472a-ad61-73f4662e1d7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_admin [0.119566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-84053172-0768-4860-b88f-5b8bb9b25012 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.164284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_member [0.174940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-22134d9b-03bf-490c-9fec-40a653389704 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.230973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fec163d3-af9c-467f-8856-e44ea227051b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.094181s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track [0.102822s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_nodes_ports_detail_get_observer [0.150132s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad52dc6e-2609-4bb8-8b33-532fb782c7b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.081917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.213719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0aebca7-f985-4051-8ad4-556f97809986 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.564480s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_admin [0.139821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e6133928-069a-41dd-9f9d-932b0d95173d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.126029s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.118478s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_member [0.132198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-19883a33-09fe-4f47-95c1-b6aea9cc4e3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot [0.099597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.209389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-437c4ec5-e4a8-49d5-983b-422fb3bfc8cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage_and_storage [0.136990s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_get_observer [0.135694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d581ba24-58ce-40da-bc34-b2373df988b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot [0.165063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.111498s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.221173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-236ad404-08ce-404b-a992-8b8caa40bb72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [0.107588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_admin [0.149600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-08523a71-83f9-4bc1-991f-17212243d454 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.171830s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.116365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_nodes_portgroups_get_service_project [0.190122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29850d59-5549-467c-8106-f36777acfc8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_member [0.132263s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e44a9854-fdad-4216-8e6f-f425e41cbfae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.109085s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.119251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_portgroups_ports_detail_get_observer [0.147782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0e82cfec-304d-4ca2-9918-c35d0dfc17a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.098203s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_portgroups_get_service_project_disabled [0.151602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-48799c23-89ba-4e7b-a54c-21cbba26e4d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.094323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_admin [0.121573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1754e955-b5cf-477f-8ef8-28ffc6f9276b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.130357s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.173533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_portgroups_detail_get_admin [0.216161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5e491ef-7f61-49e0-9768-824e9073d454 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:30.565169+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_member [0.120572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ba371fa-b710-495e-8ced-e7a7db2cca63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac [0.130230s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs [0.111335s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_portgroups_detail_get_member [0.164985s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-26cd8c59-f8bb-4cd1-8e8e-5c350ad08038 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:30.779370+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.200786s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled [0.104373s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_service [0.097166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_reader [0.147351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76ba05b6-4676-40dc-baf8-1b04007722f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:30.933035+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.140390s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service [0.147587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e2cc0c6-708b-4bb5-8217-aac5cad06ca2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:31.085103+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.195021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.132425s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.077305s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_get_observer [0.621409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-59ef2735-4385-47e2-9658-df1d51f31de0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_portgroups_detail_get_service_project [0.168971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56101ea7-5968-49e0-bf77-7663d9fde2a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-19T19:12:31.247750+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.088287s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.217541s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_admin [0.159157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-23f5e25c-827e-492f-85d2-1b009f16b268 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.102268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_nodes_portgroups_detail_get_service_project_disabled [0.192961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7e396d2d-5000-4a03-8868-0faf4ea37696 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.112568s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.223168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_member [0.202425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a03e0845-84fb-4fac-b437-5bbad1373bd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_admin [0.195974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b650a8c-5c9c-450d-8cca-c26795d18641 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.164308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service [0.126500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72af1fe4-2b75-44c6-9bcc-a96dc5a232ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.087575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.270285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_get_observer [0.238941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8c6cc095-0635-4d76-a13d-c9f4739bcb64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.090270s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.086910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.107599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.101334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_admin [0.212282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-aaf59ed1-ab1e-4095-b6b9-305374009ccf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.107360s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_disable_power_off [0.126703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.099029s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service [0.082681s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_member [0.202195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dd19fb12-92b3-4ae9-b945-cfc7ac5e11bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.101485s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service_disable_power_off [0.097917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.105003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_connectors_post_observer [0.147534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2dbe8c3f-f2ae-45f0-9f53-8b86c6689e1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_ports_get_service_project [0.695258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8ff1113f-1dd3-44b3-88c8-a092033a6b14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_admin [0.060842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/577ba1e8-609d-4b65-8faf-43df992a8e87 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b9029f33-b2ae-4fb4-9ae0-c7d58562c6d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 577ba1e8-609d-4b65-8faf-43df992a8e87 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.207388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.156962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_member [0.066611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/4df72ae1-e485-4daf-aa58-85275de60baa WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-42f57df7-ac29-401b-aa4f-ce6156b18ce9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 4df72ae1-e485-4daf-aa58-85275de60baa could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_get_observer [0.056948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/15864e93-a07f-413f-9299-526823e46e2c WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-320782f5-5d8a-4004-b0a8-6299a437492e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 15864e93-a07f-413f-9299-526823e46e2c could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.129398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_service_project_disabled [0.193512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74d25901-d994-4389-9df6-8303a6997ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_admin [0.073529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/ffe490fe-ca6b-4f0e-8b80-a44ba03d4a1c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a2c0949e-1822-4d29-822d-890aa5ae07cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ffe490fe-ca6b-4f0e-8b80-a44ba03d4a1c could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.155714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_member [0.085458s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/53fa7ac0-26bc-4ce9-9c41-19d1cdef06ef WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7c1af0a2-96aa-4879-9b53-241a9d5dfbaf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 53fa7ac0-26bc-4ce9-9c41-19d1cdef06ef could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.156281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_patch_observer [0.064129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/e1b1f79a-c463-44b2-8832-62c79b776020 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b0b2cb26-84c3-4b10-b8dc-d0bbbbfb9d3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector e1b1f79a-c463-44b2-8832-62c79b776020 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_ports_get_member [0.177296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df314894-7dc4-46b6-a5e3-79653107bb63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.148360s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_admin [0.065430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/eaa02d2c-2335-49f4-bbd0-d0c7ee06cb62 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6f483e96-f89b-4053-abfa-67acc5d0bfc5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector eaa02d2c-2335-49f4-bbd0-d0c7ee06cb62 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum [0.145921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_member [0.067160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/ab9cf3b2-93c6-4db6-bda1-814d433b3a7e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0da81525-580d-4d31-b447-d5d86407c761 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ab9cf3b2-93c6-4db6-bda1-814d433b3a7e could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.178428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_volume_connector_id_delete_observer [0.068679s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/d9ade529-a002-4f4d-9c4b-8a58c38c83ab GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-da6170cb-aec9-4ca3-a21c-dbc8f12b879e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d9ade529-a002-4f4d-9c4b-8a58c38c83ab could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_ports_get_reader [0.202943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68f985e4-a5f2-4b56-ad4f-737977017108 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.157731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_admin [0.063903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d2e70abe-d01c-48a4-9636-f7bfbdd9520c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_member [0.078704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef40a6c6-0990-4475-990e-9fd8f9593514 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.195750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_get_observer [0.065009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5190bae4-e7d7-4f63-b789-e32ab32334ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type [0.160134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_admin [0.240016s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b6aaec19-ea14-4f91-8927-db22765de521 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_admin [0.072198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8cd70fcb-70b4-46a9-b613-ab9346fbb22f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.123778s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_member [0.074404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ab4b4bf0-ae34-4ed5-b52b-1d7a5131540a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.198457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_ports_post_member [0.180732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '22e26c0b-03f2-4d2e-ae87-c02d7f33c000', 'address': '03:04:05:06:07:08'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1d5fdcf5-d008-4d36-8b70-885065a0a132 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_targets_post_observer [0.074665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-85de2407-3fd1-4ba0-bc5d-9befa0684276 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.115113s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_admin [0.079526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1958a999-2ec4-46c2-825d-87966fff8739 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-93ec9ec0-69ff-4033-a6c4-f887843d7df6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1958a999-2ec4-46c2-825d-87966fff8739 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.175722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.121480s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_ports_post_reader [0.156093s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cd579211-eb48-4d44-8d4a-8f273a5cf27f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_member [0.064906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/3b25001b-eafb-4e3e-b333-3a4af17f6645 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d903e01-a21a-48b8-b7e8-4a16002e9c6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 3b25001b-eafb-4e3e-b333-3a4af17f6645 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_get_observer [0.079927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/628c0901-a400-4150-bc0e-e3dda9d20ba4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-470c96d7-1023-441f-8d7b-37058e727566 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 628c0901-a400-4150-bc0e-e3dda9d20ba4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.158980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_admin [0.059769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1ae663a1-f0c2-43bf-9808-e77f1a72ac91 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1093b5d-50e5-4afa-959a-19bd37e84636 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1ae663a1-f0c2-43bf-9808-e77f1a72ac91 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.169857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_admin [0.180947s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80b0d366-b129-4bac-a28c-3ba17d408584 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:33.831815+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_member [0.081618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/9d89c30b-c7e7-4044-9e15-b4674ed31f89 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1c24559c-617e-4aa7-9697-f939df72228d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 9d89c30b-c7e7-4044-9e15-b4674ed31f89 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_patch_observer [0.063135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/47d3faf6-d3e3-4b96-a163-647a6f2b429d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bb5c85fb-0589-4242-87a1-dba34dbee3ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 47d3faf6-d3e3-4b96-a163-647a6f2b429d could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.152973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.185858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_admin [0.081712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/da505820-e2ec-4ed2-9449-39cd0e34641f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1fd2e167-0924-4997-af15-fa85be0c40d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target da505820-e2ec-4ed2-9449-39cd0e34641f could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_ports_detail_get_member [0.211033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96a9d84a-dbd3-411c-bfc0-b54bf99913f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:34.047009+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.150795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.182841s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_ports_detail_get_reader [0.156317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85b48ed8-b39b-4d10-8fc4-b7c9a9f4fb13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:34.222566+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_member [0.189085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/4f47a488-e356-43de-a07c-85f9e01e3d7c GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e7034cd9-3bf7-41b4-b6b9-c7763dbaf66d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 4f47a488-e356-43de-a07c-85f9e01e3d7c could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.146649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.159370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_admin [0.167600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-358818d1-e7b8-487c-91e2-bc38771da634 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:34.398323+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_volume_volume_target_id_delete_observer [0.175830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/d338dbf1-9500-41a6-983d-c4846770b79e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-074b2386-8ad9-432e-bfb6-0a93fa56eb60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d338dbf1-9500-41a6-983d-c4846770b79e could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash [0.155983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_admin [0.095664s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-df4ec3c9-5538-43c6-b4f2-b0b7cb7cf209 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_get_member [0.183145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e92b331d-ad49-46a3-bce2-4e11e46cc912 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:34.545163+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_member [0.087296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b2f53782-b697-46cc-97f0-2ae1949fde55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_oci_no_checksum [0.149880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_get_observer [0.064984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5f1a7568-93d4-4bbf-940b-ebe2cbd60893 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_admin [0.072396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5adb05f9-7402-4b28-955c-1d3293705e49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.109642s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_get_reader [0.205194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33983c9e-57e8-4e1d-bef2-1e1ca5bfa35e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:34.748161+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_member [0.077123s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3a4a3620-2cb9-4e16-a099-73dcb8218eaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_connectors_get_observer [0.068187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7feaa082-5a74-44f8-b0ad-7ca6a9ad6f48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.185462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_admin [0.122476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-087b83ec-810a-4151-9643-7e110ca15f49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.728188s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_admin [0.286264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-841ad576-abcf-4b10-80cd-f7e8d9c3fe80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success [0.219135s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_member [0.183072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cbf92b20-4015-4d0d-beb1-1bf99d52352d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.186385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_ports_port_id_patch_member [0.215607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-450531f9-852d-481e-8444-349c42417ef4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.126726s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_nodes_volume_targets_get_observer [0.141889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0fda4c66-ba49-4677-b17c-0ce25dc59c97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.200851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_ports_port_id_patch_reader [0.078380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-752d27a6-beb0-463e-b56f-20d29efa6a18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_admin [0.059865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-964ae7d3-a6f6-4dbb-abd3-bc9b8e39e3fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.107517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_admin [0.139268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e3f075e9-dead-4bde-b22f-e8434251770c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_ports_port_id_delete_member [0.093646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43c5de4a-2d38-45b0-ae11-d62ab0f8719f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url [0.175696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.114426s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_ports_port_id_delete_reader [0.075447s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fc3872c1-7781-4310-b8bf-af64c5bb0e48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_member [0.142574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-00f6add4-9588-43ab-be23-dbc5b8fe98f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.092000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_oci_authorization [0.204137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_execute_bootc_install [0.089830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_admin [0.144992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56d44eca-8567-4aa1-b006-b3f31c9e577f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk [0.075088s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_get_member [0.096522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06a086d5-f3ab-4c76-8bc6-865e816f1374 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk_lenovo [0.082458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_get_reader [0.064768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4fe8f56-1a56-4243-ae42-4fa69b3262ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image [0.174982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate [0.083177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_admin [0.085320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc9869e3-e479-4634-a771-beaafcaa8531 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:36.031792+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_nodes_ports_detail_get_member [0.076471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe2db298-44f9-4aef-ba0a-ccd48af43489 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:36.111226+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive [0.164413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_image_source_not_set [0.134896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_get_observer [0.519156s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1737e7f1-9a90-433c-a6f5-66a249eb1abc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_nodes_ports_detail_get_reader [0.068141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb865366-f65b-4173-b7b0-440c7718acd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-19T19:12:36.185520+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_portgroups_ports_get_admin [0.067513s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36a30497-f45f-428d-a7a2-d64548fafcbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_with_non_oci [0.119136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_admin [0.132566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e72e761e-631c-4032-9d45-7305131f2be3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_portgroups_ports_get_member [0.077917s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a58ac879-8195-4585-8567-550a240f2942 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook [0.067302s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_portgroups_ports_get_reader [0.073590s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c5351e3-6fd9-4eb8-a442-3bc60c94bda7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook_no_hook_registered [0.067271s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_member [0.147477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2cbe6049-bf1c-4079-8e9e-fabe220af7d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_portgroups_ports_detail_get_admin [0.084037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0c91257-9f1b-4758-8794-eacfedc22fc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot [0.113048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_portgroups_ports_detail_get_member [0.086052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-190b394f-e937-4bd3-9ee4-01d239707bfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_driver_name_get_observer [0.147922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-00635715-3379-4429-9b8f-75ea0319f862 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_deploy [0.148424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_portgroups_ports_detail_get_reader [0.143041s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05be6130-e71b-49b7-9975-fd1be166cf16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_admin [0.141179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-87e13452-5e4c-4576-8cf7-24cd7e9f8a3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail [0.127681s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_admin [0.125483s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6e46210-2029-407d-9e87-104ae377ba24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_member [0.129711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-16e841cf-4468-4836-8fdf-6e43542ad7e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.712940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies [0.085979s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail_deploy [0.085570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_base.BootInstanceTest.test_boot_instance [0.058749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail_servicing [0.121207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_member [0.150776s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-910a19b2-aa55-4a92-847d-87650b9bda2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_properties_get_observer [0.157435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ae305bf5-0905-4c09-b345-51111478333f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_base.BootInstanceTest.test_boot_instance_no_power_on [0.079241s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_empty_result [0.028538s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_has_retries [0.020710s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_pregenerated_token [0.146647s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_multi_command [0.022605s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_get_reader [0.171655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6300a7e7-d77a-4940-b5b7-cb7e8c1b6719 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command [0.031467s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command_mismatch [0.046568s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test_post_clean_step_hook [0.087883s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_admin [0.222846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f128da8c-9692-45f6-b3c2-360d2f7072f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_agent_already_down [0.069114s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps [0.073849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_get_service [0.195805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48feaa2e-9f7b-4cd3-9170-0cf10f6e9491 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay [0.073958s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_member [0.117932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cd9591c0-b439-48d7-ad90-f75fa6c2fd4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy [0.082361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay_with_fail_if_unavailable [0.069884s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step [0.088588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_timeout [0.062971s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_raid_logical_disk_properties_get_observer [0.123609s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bebdb54c-e9e1-4ccc-af19-acfdc96c63e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_volume_get_service_project [0.173228s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-311bbd40-e3a2-40f7-b75e-46dea378a7c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running [0.101344s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_admin [0.134707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a4ef06a4-c8a4-4dcc-86b4-a15388277c30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.145009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.089891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_admin [0.204875s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a288f020-7d8a-4156-b132-2af5b824884f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "61019424-6f5a-4479-8ef4-7d38ea0fe452", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/61019424-6f5a-4479-8ef4-7d38ea0fe452", "rel": "self"}, {"href": "http://localhost/volume/connectors/61019424-6f5a-4479-8ef4-7d38ea0fe452", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.091513s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_member [0.118298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-39c45aee-33de-4ffd-b739-0bfc5b0bc6db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step [0.080379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.092123s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_volume_connectors_get_member [0.134710s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b463442f-6b7d-467b-a725-4b34de7ab933 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "d032d2f9-a6f8-43c4-94ce-0e6d4a55c17e", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d032d2f9-a6f8-43c4-94ce-0e6d4a55c17e", "rel": "self"}, {"href": "http://localhost/volume/connectors/d032d2f9-a6f8-43c4-94ce-0e6d4a55c17e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_service_step [0.085763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_methods_get_observer [0.134834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9d3702ef-bfe7-4886-85c2-47691a15ad4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_volume_connectors_get_reader [0.059117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e445e9dc-c59d-4496-9ad0-2d6b15872183 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "7bb4683e-df02-4ec4-9021-2a1ed340e1c0", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/7bb4683e-df02-4ec4-9021-2a1ed340e1c0", "rel": "self"}, {"href": "http://localhost/volume/connectors/7bb4683e-df02-4ec4-9021-2a1ed340e1c0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.091931s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_volume_connectors_get_service [0.067023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c58c45b-6c80-4c9d-947d-6bf9afa6b93e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "f4b6c2a5-664d-4b5b-927d-f56b821395f6", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f4b6c2a5-664d-4b5b-927d-f56b821395f6", "rel": "self"}, {"href": "http://localhost/volume/connectors/f4b6c2a5-664d-4b5b-927d-f56b821395f6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step [0.129439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.091209s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_volume_connectors_get_service_project [0.056003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13f7fbe7-938d-4d18-8572-06e82fd732f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1d1f0591-53b3-4d69-a3cd-31916f0a3afb", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1d1f0591-53b3-4d69-a3cd-31916f0a3afb", "rel": "self"}, {"href": "http://localhost/volume/connectors/1d1f0591-53b3-4d69-a3cd-31916f0a3afb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_admin [0.192644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-593473f6-26a2-4da4-97f0-2b87e2acd100 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_volume_connectors_get_service_project_disable [0.062018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70ec8f6a-8fe3-4e09-91e8-e797d38c9f4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.090624s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found [0.123853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_admin [0.069555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/393d953a-3768-4d82-9eec-399caecb4a9c Openstack-Request-Id: req-3f592664-e119-40c0-8a63-d2e80563144d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "393d953a-3768-4d82-9eec-399caecb4a9c", "created_at": "2025-05-19T19:12:38.244783+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/393d953a-3768-4d82-9eec-399caecb4a9c", "rel": "self"}, {"href": "http://localhost/volume/connectors/393d953a-3768-4d82-9eec-399caecb4a9c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.088634s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps [0.120626s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_member [0.180415s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f6e50efe-7c0c-4aee-b593-676aae823690 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_member [0.112633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/a42f78c0-9c06-4762-8aa2-3a8c2eebcf39 Openstack-Request-Id: req-0452a3e3-553a-4c24-b15b-3406bde58195 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a42f78c0-9c06-4762-8aa2-3a8c2eebcf39", "created_at": "2025-05-19T19:12:38.351157+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/a42f78c0-9c06-4762-8aa2-3a8c2eebcf39", "rel": "self"}, {"href": "http://localhost/volume/connectors/a42f78c0-9c06-4762-8aa2-3a8c2eebcf39", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.191423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.130019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_get_observer [0.202295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f79d30a5-71c9-46c5-9189-13ab2698c9ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [0.116518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface [0.172731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.115601s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_reader [0.430811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8d058191-3df6-4411-8100-714741d91265 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.071726s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_admin [0.223933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b228cdcb-caaa-4653-b06b-ac8059ef1ee3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps [0.160669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.074032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.053041s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities [0.116989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_member [0.180356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e8442a11-78a3-4131-891c-ecb29bb057b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.070651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_connectors_post_service [0.237893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/12c506e9-f504-4a6a-9c67-83b433520df8 Openstack-Request-Id: req-3c31cc69-4371-40ae-85eb-6e3e3a0ab8b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "12c506e9-f504-4a6a-9c67-83b433520df8", "created_at": "2025-05-19T19:12:39.004670+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/12c506e9-f504-4a6a-9c67-83b433520df8", "rel": "self"}, {"href": "http://localhost/volume/connectors/12c506e9-f504-4a6a-9c67-83b433520df8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none [0.085860s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required [0.028642s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_post_observer [0.109229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b191b15d-ace6-47bc-98d9-342a1d2223d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off [0.120867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.051836s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.042597s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_admin [0.117241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ce98c0ca-ba66-421a-baf5-728d1f7207d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_connectors_post_service_project [0.199518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/d5f3aaaf-e75d-46d3-8398-b73c59067da2 Openstack-Request-Id: req-e41b3ec0-7df3-4bb9-8137-946a53fad00c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d5f3aaaf-e75d-46d3-8398-b73c59067da2", "created_at": "2025-05-19T19:12:39.214748+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/d5f3aaaf-e75d-46d3-8398-b73c59067da2", "rel": "self"}, {"href": "http://localhost/volume/connectors/d5f3aaaf-e75d-46d3-8398-b73c59067da2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.041020s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off_and_fast_track [0.125877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.056568s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.048873s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.094540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_member [0.128236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4f41f094-d9b9-4298-a007-ff9f825b11fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.039013s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_admin [0.151957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/9616fd8b-d270-4e42-ac1a-195f7bc3c7f3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19f1441a-4832-45ef-93d9-61cb3e4fbab1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9616fd8b-d270-4e42-ac1a-195f7bc3c7f3", "created_at": "2025-05-19T19:12:39.318693+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9616fd8b-d270-4e42-ac1a-195f7bc3c7f3", "rel": "self"}, {"href": "http://localhost/volume/connectors/9616fd8b-d270-4e42-ac1a-195f7bc3c7f3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.038480s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.045343s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_put_observer [0.116365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4d258e5c-ca9e-4938-920a-25ffcdc22d6c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.042585s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.164456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.043976s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.044047s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.048230s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_get_member [0.291180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/76c39f53-1ff2-4960-b617-19b6dcc8972d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4910dabd-035d-488c-8ba9-4646a608fcd9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "76c39f53-1ff2-4960-b617-19b6dcc8972d", "created_at": "2025-05-19T19:12:39.562578+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/76c39f53-1ff2-4960-b617-19b6dcc8972d", "rel": "self"}, {"href": "http://localhost/volume/connectors/76c39f53-1ff2-4960-b617-19b6dcc8972d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.050658s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.250524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_admin [0.096491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6dacc0da-f1be-4456-a5d5-5310e3df27ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_member [0.064536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a93c531-c824-4834-bc8b-e88cd6f2cb93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_get_reader [0.235856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/607f885e-87cd-40fb-b2db-3de763519fc5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89fd9299-3579-4eac-93dd-5853642d00c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "607f885e-87cd-40fb-b2db-3de763519fc5", "created_at": "2025-05-19T19:12:39.850313+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/607f885e-87cd-40fb-b2db-3de763519fc5", "rel": "self"}, {"href": "http://localhost/volume/connectors/607f885e-87cd-40fb-b2db-3de763519fc5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_get_observer [0.078133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-acbee9e1-18a5-4180-a7cd-20f34f3c0f72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_disable_power_off [0.178520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_admin [0.066370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f1688eeb-836a-4eae-ba46-f0da2e2935b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_member [0.084413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad383cc7-a9c6-4cd2-9a29-ba738db1448c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_service_error [0.139615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_nodes_bios_bios_setting_get_observer [0.067344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b2664ed9-e7c4-4a86-bf6c-1727b3c3a7f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_admin [0.231018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/96abf410-40f7-483a-94b9-8cb079837486 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e8ce0ea1-c180-4a50-a77c-2fd26b4fb3e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_admin [0.057755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b222b82d-fedd-49d4-8de3-ae177d56e22e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test__expire_console_sessions [0.128007s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_member [0.063154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f7d81de0-4c08-4455-8ae5-6f8fe52b516d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_get_observer [0.054832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a70e6138-dcee-4583-afd3-cb75f83d03d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_start_console [0.110476s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_admin [0.058222s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a5c323e7-68a8-41ec-9f8b-ca69fedf3b1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_member [0.234400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/10b6a378-0ff6-4363-a6b9-e25f974caff4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a7a91de4-6be7-44de-80b1-479866bcc89a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_member [0.073620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-64f00fad-446a-4bb5-9876-5c4186e16d10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_conductors_hostname_get_observer [0.055371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-65918a7a-5a3a-47ef-beb9-43f863d11c8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.842440s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.048260s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_patch_reader [0.212463s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/4ac0261c-9396-4380-8b56-4b4ba6c7b400 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-69301a6e-55af-4590-9cde-03490ce6037a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.053342s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_admin [0.146534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-781ca0d6-8f61-48f4-929b-2e55618e401d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.098381s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.040183s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward. {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.077700s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_patch_service [0.231599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/ef9f4b0d-f4c9-4e0a-addd-4e3f662f9839 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4d44dba4-1f68-48cb-aa63-282038473d34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.047899s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.030152s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_post_observer [0.147631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c01b479a-b706-47be-a246-5aa8fd92e74d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.023498s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.030672s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.020006s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.018731s] ... ok {0} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_stop_console [0.681320s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.024420s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_admin [0.123089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f5e13889-72ec-404b-9cc9-c5db3ab9b766 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.023814s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_admin [0.220602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/f9df8447-9984-495f-b79b-be9f27f8a03e GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b197a331-268c-4700-8653-c66fa2ad184c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.019011s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.018454s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.084199s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.020758s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.032151s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.038262s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_gpt [0.081675s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_member [0.181362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c90343bb-fa8e-4b69-97fb-553ce247de50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw [0.070289s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_member [0.222065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/7d8a0110-1404-45cb-af58-863b7bc99cba GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d72f7d3f-abf2-4d1e-a411-263488e06d63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_convert_to_gpt [0.078858s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_get_observer [0.176449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-03dd58a2-811b-4256-833f-eb75189aef88 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.235211s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.084119s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.039567s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.031494s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_volume_connector_id_delete_reader [0.213611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/fc6a755a-ccb1-4df4-8fb7-1cb6de5904cb GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dbe50824-ea1a-4e9b-8da5-bb4b00dbea6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.031268s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_disable_validation [0.055759s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.037436s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_admin [0.153199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8ed54f50-e3be-4647-baf2-fa589ad342aa WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b09cd9d1-2f6a-479b-a5c3-eaa1b6566c85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 8ed54f50-e3be-4647-baf2-fa589ad342aa could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback [0.064111s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.067934s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.065337s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.037736s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.029142s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_volume_volume_connector_id_delete_service [0.199525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/4f537e7b-b527-49ef-a557-355bf5ea0add GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-941d7534-a40a-4073-b945-385035b7cc67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.050645s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_not_safe_image [0.074853s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.054853s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_part_already_exists [0.062451s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.029825s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.045597s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_image [0.059418s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.035665s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_admin [0.209458s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2eda6547-6415-4ff2-ae4d-2ac0d9afe53d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a6c08fab-d685-4cf7-983d-0c19a5314abd", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a6c08fab-d685-4cf7-983d-0c19a5314abd", "rel": "self"}, {"href": "http://localhost/volume/targets/a6c08fab-d685-4cf7-983d-0c19a5314abd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.067013s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.088076s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_with_image_auth [0.049035s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.042983s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_member [0.155316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2cb1cfd-ac7c-4452-a54e-8f62aba4bb0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "5940b9f5-eeea-45d0-bb2b-d667da41514c", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5940b9f5-eeea-45d0-bb2b-d667da41514c", "rel": "self"}, {"href": "http://localhost/volume/targets/5940b9f5-eeea-45d0-bb2b-d667da41514c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.086910s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_member [0.516071s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8d2f3633-2d60-4a74-8263-f0d50b6391b4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5ddb1b5-452e-4637-b823-0083413c8823 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 8d2f3633-2d60-4a74-8263-f0d50b6391b4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.043436s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.066427s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.034065s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.046115s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.037707s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_volume_targets_get_reader [0.136048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5df89b77-f77b-4b9c-b7b5-9b7a4a56eb95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "14093e21-4c87-4965-9ac1-fe9c65fb8e37", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/14093e21-4c87-4965-9ac1-fe9c65fb8e37", "rel": "self"}, {"href": "http://localhost/volume/targets/14093e21-4c87-4965-9ac1-fe9c65fb8e37", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_get_observer [0.149611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/12adefe9-d0f8-4a1a-a59e-0580c9ede49d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cd52a5ae-56e0-4505-868e-789a9cce10a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 12adefe9-d0f8-4a1a-a59e-0580c9ede49d could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.040544s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.046171s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.047858s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.051968s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.041490s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.033608s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_volume_targets_get_service [0.151933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-abdbdd99-ecdd-4820-a8f3-404adf539012 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "c6b2812f-2fb2-4905-adba-863cea3f16b8", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c6b2812f-2fb2-4905-adba-863cea3f16b8", "rel": "self"}, {"href": "http://localhost/volume/targets/c6b2812f-2fb2-4905-adba-863cea3f16b8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.039093s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.040960s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_admin [0.144105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/284aa6f7-c5bb-48d4-8da1-82701bbe3bc9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1efd001b-6ba8-464d-a4ad-e021bab668f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 284aa6f7-c5bb-48d4-8da1-82701bbe3bc9 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.042041s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.041050s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.036536s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.055679s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_admin [0.148024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': 'test-id'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/5b025b2d-44be-4616-aade-cb0a18052477 Openstack-Request-Id: req-0e72c9d2-221d-486e-a86d-73ebc632a5ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5b025b2d-44be-4616-aade-cb0a18052477", "created_at": "2025-05-19T19:12:42.564552+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5b025b2d-44be-4616-aade-cb0a18052477", "rel": "self"}, {"href": "http://localhost/volume/targets/5b025b2d-44be-4616-aade-cb0a18052477", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.054236s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.068660s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_member [0.194236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/277f00f3-c966-4dda-89ce-579c635df94d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5d8b34b9-9e6c-495c-a2a6-2f7ddcd2fd93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 277f00f3-c966-4dda-89ce-579c635df94d could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.060332s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.070598s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.077188s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_member [0.158966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/99a38549-ceaf-4430-8996-88e803007581 Openstack-Request-Id: req-eff84994-5adb-4cb1-82c8-5ae8cf72a4d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "99a38549-ceaf-4430-8996-88e803007581", "created_at": "2025-05-19T19:12:42.720843+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/99a38549-ceaf-4430-8996-88e803007581", "rel": "self"}, {"href": "http://localhost/volume/targets/99a38549-ceaf-4430-8996-88e803007581", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.075110s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.051325s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.076709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_patch_observer [0.193643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/2c55fe8f-bde4-4c79-bde7-ed4e27682d59 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1e02ead2-aa76-4e37-9eea-af7716435817 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 2c55fe8f-bde4-4c79-bde7-ed4e27682d59 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.052903s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.069045s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service [0.147128s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/d095951a-1402-4e36-b082-696ef89cfa5f Openstack-Request-Id: req-2a0f9f21-6508-496a-a779-62f02d29c44c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d095951a-1402-4e36-b082-696ef89cfa5f", "created_at": "2025-05-19T19:12:42.872996+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d095951a-1402-4e36-b082-696ef89cfa5f", "rel": "self"}, {"href": "http://localhost/volume/targets/d095951a-1402-4e36-b082-696ef89cfa5f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.050272s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.077288s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.053139s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.062025s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_admin [0.191348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/466b53bc-7863-470c-84d3-f08a4045e217 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bd827f0e-6cd9-4cb4-9c90-c2c847098988 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 466b53bc-7863-470c-84d3-f08a4045e217 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.069628s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project [0.187774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/78e36fc4-5aca-48bb-bd76-773537f800b1 Openstack-Request-Id: req-78aaaa4b-699c-4fc4-99cf-319d029bb19b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "78e36fc4-5aca-48bb-bd76-773537f800b1", "created_at": "2025-05-19T19:12:43.054844+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/78e36fc4-5aca-48bb-bd76-773537f800b1", "rel": "self"}, {"href": "http://localhost/volume/targets/78e36fc4-5aca-48bb-bd76-773537f800b1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.071270s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.081537s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.063703s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.089061s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.066601s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_member [0.188593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/db38692d-1398-400f-bfae-360a63b1314f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-98c94831-2e7b-4cfc-85a0-5aaf968fe3d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation db38692d-1398-400f-bfae-360a63b1314f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.070212s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.071180s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_service_project_disabled [0.214010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-53c342a9-8549-42b3-83cc-d7c1c10af55c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.062679s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_clear [0.068713s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_261_allocations_allocation_id_delete_observer [0.197244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/c05203a0-a068-4ba0-a4cb-0cdbf28aed5a GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d8ab26b1-a064-4250-861a-d72b7fbd914b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation c05203a0-a068-4ba0-a4cb-0cdbf28aed5a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.074492s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.079715s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_targets_post_service_project_admin [0.195084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-648f8599-88e4-4b6d-a0c5-45f5089f6011 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.072313s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_replace_with_empty [0.059910s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_no_on_error [0.054793s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.069507s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_admin [0.197001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b79dde3d-6958-4f2e-83a0-7c64ecda442c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_post_hook_on_error_callback [0.062646s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.057954s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_targets_post_reader [0.146557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/targets WITH {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': 'test-id'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-73ab3ab0-6ba2-4cb0-a0b8-aa8c34788b03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.053748s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_pre_hook_on_error_callback [0.080343s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.045365s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_member [0.142630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-26f49b38-19d6-4507-8936-d77a7997fbe5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.040313s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.064301s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.046710s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.064276s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_admin [0.224070s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/6bbe334a-04f8-4ede-9f0c-f4379387f39e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebc04fe3-07ee-4bb0-bd68-19d540e501f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6bbe334a-04f8-4ede-9f0c-f4379387f39e", "created_at": "2025-05-19T19:12:43.764713+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6bbe334a-04f8-4ede-9f0c-f4379387f39e", "rel": "self"}, {"href": "http://localhost/volume/targets/6bbe334a-04f8-4ede-9f0c-f4379387f39e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_checksum [0.057958s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_get_observer [0.125371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-015b70ed-848b-4811-a230-adfc8d799cad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.074187s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.052669s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_with_auth [0.055806s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.061450s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_admin [0.136111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2808482c-9046-4166-b06d-598347371d9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.048098s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.067484s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.045008s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_member [0.233823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/d96b0cd7-aaa1-44f8-9593-b77626a8501d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6aee2e3-45f1-4ed7-b84d-3161eb8e0bf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d96b0cd7-aaa1-44f8-9593-b77626a8501d", "created_at": "2025-05-19T19:12:43.998436+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d96b0cd7-aaa1-44f8-9593-b77626a8501d", "rel": "self"}, {"href": "http://localhost/volume/targets/d96b0cd7-aaa1-44f8-9593-b77626a8501d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.062859s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.067383s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_member [0.129419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7b249db5-7eac-4946-843e-8439b55e0a1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.064546s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.063668s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.063064s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.052863s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_nodes_allocation_delete_observer [0.135130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bdbef471-1174-46b1-adf3-ec8be63f1c50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.038722s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.058444s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_get_reader [0.233273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/9ccf0a91-1c51-413c-9d6f-19fee2a4cae6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f558771-969b-4812-9de2-e38a9e1be6be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9ccf0a91-1c51-413c-9d6f-19fee2a4cae6", "created_at": "2025-05-19T19:12:44.224367+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9ccf0a91-1c51-413c-9d6f-19fee2a4cae6", "rel": "self"}, {"href": "http://localhost/volume/targets/9ccf0a91-1c51-413c-9d6f-19fee2a4cae6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.062706s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.061426s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.051585s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_admin [0.143009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-99fa598c-abb0-4ac0-a280-d21032016619 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.059461s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.047676s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.056669s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_get_service [0.203119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/bc2eeda0-98c3-4b9a-8ffd-d38a83a3f922 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-682ec858-be46-4fcc-8919-209c2cd99236 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bc2eeda0-98c3-4b9a-8ffd-d38a83a3f922", "created_at": "2025-05-19T19:12:44.450388+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/bc2eeda0-98c3-4b9a-8ffd-d38a83a3f922", "rel": "self"}, {"href": "http://localhost/volume/targets/bc2eeda0-98c3-4b9a-8ffd-d38a83a3f922", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_member [0.134313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fb3081a6-adae-42e8-a31f-b899f3c5c28d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.056499s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.056578s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.060279s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_post_observer [0.179564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-729693bb-4f2f-42cb-a937-a154a4f3cdb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.059865s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.288350s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_admin_extra [0.238782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/8540f17e-fe26-4d23-9315-e50408f6015e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c3c08839-d5ef-495d-835b-77a4b70dbd0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.046706s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.038992s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.039392s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_admin [0.163158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1f6328ab-5482-42e1-afeb-ca26d1d246e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.045145s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.205127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.041665s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.039975s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_patch_admin [0.247298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/04727e6d-5696-4786-ba76-e1dbef1dd6d0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-96aaf5c4-4cb5-4945-b13d-99e2867a8de0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_member [0.127563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-23f76c3c-8627-444d-8ace-f6a5875abfee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.040087s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.116438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.053177s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_get_observer [0.136376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0dc6e223-0ffc-4135-8996-135d459cfa8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.065455s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.120525s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_patch_reader [0.211871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/d6b29fc1-9746-42b3-b391-d3e79546a1b9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-210da0ca-69d6-44f4-8917-a576702d3570 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_admin [0.122087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/12f1129d-1aa7-490d-8d49-eb99e79e52d1 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-93dc2f18-c5f0-4d25-a64b-7313baa00f38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port [0.129949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.097130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_member [0.132553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/fc163044-9af4-4464-8197-1b3c8273126c WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-34faacda-ab53-4b2f-9820-438eeb169545 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.088361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_patch_service_disabled [0.263380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/0a584380-1684-422b-a1da-f492fcee95d7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5dd871c2-9534-4096-8410-4203544fc93b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.084853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_get_observer [0.175267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/04ed3f53-c654-44ed-8f1c-214624cb178e WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b6188374-23d4-43d4-8cb6-db115b9ebbd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.053175s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.047906s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_admin [0.144821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d6004363-1ab4-4914-ac79-e4d3f4de6113 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2cafcd2f-63ca-4f97-b52e-ef4194d60285 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_volume_volume_target_id_patch_service [0.277533s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/040e3e39-ef0e-46b2-9e53-5bdcde94be7c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2b73c88d-0805-4b6d-8d30-df64c3c4e524 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_member [0.129012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/a3bd3069-5638-41c6-b968-5a6fa004cf87 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-59ce1347-f96a-482c-a258-539cc25cd95e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.719005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.047089s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_volume_volume_target_id_delete_admin [0.207160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1ee88b4a-5eac-4178-8eb5-9e80e8e149c8 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-515023d0-9708-46ed-bd5f-a227969de27d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.042398s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_patch_observer [0.151813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/266a543a-b53d-4a7c-8f3d-28ad45e1ac62 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7fc36092-2060-492f-81d6-7e80a8fa63a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.051802s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.076202s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.043747s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_admin [0.176395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/4631a380-51fa-4439-90d0-0d329ab12fbe GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2154b75e-8b4e-4bbc-94fe-b643f0846e65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_volume_volume_target_id_delete_member [0.198760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/a691b68e-8a2f-4ebe-beac-61c0f6b9b741 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5b5e083e-750c-4304-acf7-94c9b8d5b11a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.520464s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.045659s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.045717s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.076263s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.036089s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_member [0.126994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/b763b556-8aa0-4018-85a3-c06d9aac1413 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6b7f4d26-0387-4bcd-9170-3d5c30120b00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.041722s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.041532s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_volume_volume_target_id_delete_reader [0.204553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/3a042f20-9a43-4bbb-9914-4f80038fe653 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5fd71122-b9b1-4661-8309-4b82468484ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port [0.112479s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.034703s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.048800s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_deploy_templates_deploy_template_id_delete_observer [0.136538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/40849a04-c381-44d2-b347-470d2da64168 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f1e6baca-99e4-48e3-a8bc-97e048c12038 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.043284s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor [0.121853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.051456s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.053352s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_volume_volume_target_id_delete_service [0.218828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/b2daa7d6-5a06-4f8e-bc4b-eebbf6d099fa GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4bffb4c2-33fa-4663-94c4-f8770e76503c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_admin [0.165757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f41921a0-5a05-4ce8-9040-92b9161e0297 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.109556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.049988s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.090632s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.101436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_member [0.137699s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5d17e201-046f-478e-a849-3b5ba30abec2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_nodes_volume_get_admin [0.221960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42070676-c1ed-4537-b3fc-b346cb215034 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.101405s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.107048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_post_observer [0.138652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-83a65804-192c-491c-a9bd-a7b1fcd27124 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.091702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.104451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_get_member [0.189249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49288f07-313f-41a3-a568-4b52320757ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_admin [0.127915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-37c613c2-3fd4-4f7a-9693-a182ebcc147d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.078292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.121171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.085361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_member [0.133017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3aef879e-3cfe-4728-8d71-336f37ac7428 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.094731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_get_reader [0.200996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47994a17-d2e4-4a4f-8704-e6a2c1991a94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.097676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_get_observer [0.134009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3e4363f9-1acd-46bd-a808-d7cf177b746d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.095912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios [0.163649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_nodes_volume_connectors_get_admin [0.224504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c59ff00-690e-4774-8f76-7518f80b93fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "3944cc83-8d85-4346-83fc-91d935c1c1cc", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3944cc83-8d85-4346-83fc-91d935c1c1cc", "rel": "self"}, {"href": "http://localhost/volume/connectors/3944cc83-8d85-4346-83fc-91d935c1c1cc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_admin [0.168471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c0097e25-bc44-4cd4-85a1-6bdf544570dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.124937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.161273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_member [0.111897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0d23f957-0c35-4704-9904-acbcd067bd59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.109955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.124886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_detail_get_observer [0.069977s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3995a14e-935e-4745-aed5-6b9eaac843d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_nodes_volume_connectors_get_member [0.225745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69a73e65-ac83-4d83-92bb-b8f28edadd50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "0b0644a1-be76-4177-a798-39eb127d4245", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0b0644a1-be76-4177-a798-39eb127d4245", "rel": "self"}, {"href": "http://localhost/volume/connectors/0b0644a1-be76-4177-a798-39eb127d4245", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.107203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_admin [0.063939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0deba5b9-240f-4cd1-abd3-ef83bfb244ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.133423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_member [0.079642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ec513540-ec3d-4da1-931c-b6fa99114923 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.039352s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_disable_validation [0.033993s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.137014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.038231s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_get_observer [0.101812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e7e04cd6-2884-428c-a266-fed68c2ae074 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_nodes_volume_connectors_get_reader [0.222333s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9204f873-61b3-41b3-ac37-2e9bdbe070bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "7b5fc30c-f851-48bd-a4f0-4d5646605fe7", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/7b5fc30c-f851-48bd-a4f0-4d5646605fe7", "rel": "self"}, {"href": "http://localhost/volume/connectors/7b5fc30c-f851-48bd-a4f0-4d5646605fe7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail [0.059219s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_admin [0.071851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1cff3ef7-b7fc-4a5f-9cf5-d53eab112e55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.097563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.044034s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_member [0.073061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-eae9c8d9-27e3-4b72-ab44-a349014805ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.064258s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.099725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_patch_observer [0.073405s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1f72aea6-7661-4b4a-a691-e2fcd7ce37f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.047270s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_admin [0.065037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-34c8b21b-b197-40f5-8a2d-597a19be5f70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.077009s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.143456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_member [0.083746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bb6e6ce3-2c89-4bc4-801b-3adb59fb2b93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.062801s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios [0.122204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.072512s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_chassis_chassis_id_delete_observer [0.092854s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c72cdf78-a94a-4f27-a189-7cea32812762 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.056342s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.123598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_disable_validation [0.066096s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_admin [0.135930s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e9f35924-0939-4e18-b29b-19b9daf0bf90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.067964s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.126462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.063516s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_member [0.141158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8bc99ab0-c800-4ed0-be05-562696620dff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.041739s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios [0.105921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_nodes_volume_targets_get_admin [0.812101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e834da7f-b02a-42d6-8a4f-6bc9bc8ab76e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "41910a03-a0b3-4fb1-b31a-2fc53226a5d0", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/41910a03-a0b3-4fb1-b31a-2fc53226a5d0", "rel": "self"}, {"href": "http://localhost/volume/targets/41910a03-a0b3-4fb1-b31a-2fc53226a5d0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.049138s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.044970s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios [0.107783s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.057312s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_observer [0.197718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0014130b-3b2b-41b4-bdc1-f7b9e5289571 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.112463s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_nodes_volume_targets_get_member [0.234237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7d97748-3de5-4563-a4b3-6539daa99558 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "7cfdba20-e9fe-4cef-a4f1-8f86640ec04a", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7cfdba20-e9fe-4cef-a4f1-8f86640ec04a", "rel": "self"}, {"href": "http://localhost/volume/targets/7cfdba20-e9fe-4cef-a4f1-8f86640ec04a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_admin [0.143749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fbeae974-de29-4767-8b6d-9d04abe92a99 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b0b10e4b-48b1-4a8b-ae3e-ebcb8db1c804 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci [0.097436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.201507s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.090143s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_nodes_volume_targets_get_reader [0.196077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6fe926ad-37d0-4d62-ad2a-11efd6c9f910 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "6ada725e-e156-440c-b530-a01df46d55b7", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6ada725e-e156-440c-b530-a01df46d55b7", "rel": "self"}, {"href": "http://localhost/volume/targets/6ada725e-e156-440c-b530-a01df46d55b7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci [0.115394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.192272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_get_admin [0.123484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ad94fc5-20ae-4f3e-b17d-33c5d14b0ae3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.122069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_get_member [0.113876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2cf2cc50-c28e-47b2-b373-61d7830218c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios [0.147792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_get_reader [0.174287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f48fb288-26cf-4925-891b-486fa8d624f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_member [0.610397s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3ea216c9-072a-4074-b9cf-bbc95b4738a6 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-738ae30e-f70b-424f-83e8-e10f7605651b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi [0.120708s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios [0.119308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_drivers_driver_name_get_admin [0.168767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0fc7d006-53d5-45df-a21e-606d5985ded2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_306_node_history_get_entry_observer [0.159619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2e730f79-55de-4cfb-8801-2778171383b2 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-670fc7af-1da0-4ce7-b4e5-e6c8ca679787 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.564616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi [0.121928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.101546s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.052493s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_drivers_driver_name_get_member [0.177002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dc1fa902-0550-4577-bfdf-6825e7473ab2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.065276s] ... ok {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.096677s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.126450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.040505s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.039684s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.044721s] ... ok {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.121062s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_drivers_driver_name_get_reader [0.187680s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8757debe-770d-410b-82de-c57c4ffb998b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.126179s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.038876s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.042357s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.121131s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.122261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.086386s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.054581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/bad/path WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_drivers_properties_get_admin [0.194753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-79db5ae3-e575-4a3c-afbc-99c605ef7bd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs [0.089293s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info [0.074092s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.138240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.050116s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.063163s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.038378s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid [0.044050s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.077044s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_drivers_properties_get_member [0.184657s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6f8f8f4b-416b-4703-9bbd-b63e3323278b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_disable_power_off [0.121089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.047140s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.033566s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.081422s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.056703s] ... ok {2} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.070656s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.128474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.037296s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.033306s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_drivers_properties_get_reader [0.197465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-904ae753-3316-490c-8cf6-aaa0c1f3e0ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.068419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a341afa8-6c1c-44d6-b64b-720f4fcc81f6 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.039902s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.043271s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.133611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_method.TestExpose.test_expose [0.076448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-852fb97b-62cd-4e31-ba40-114f954a150e {"foo": true} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.037628s] ... ok {2} ironic.tests.unit.api.test_method.TestExpose.test_expose_validation [0.054708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8851c6d7-ffce-485d-901c-1ff2feeb539c {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid flag: Unrecognized value 'truish', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.049839s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_drivers_raid_logical_disk_properties_get_admin [0.181945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-82eb3fdd-1d33-4315-afef-7609a8e83190 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.111869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.047705s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_no_input [0.031692s] ... ok {2} ironic.tests.unit.api.test_method.TestExpose.test_post_body [0.094356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/things/ WITH {'three': 'three', 'four': 'four', 'five': 'five'} GOT Response: 201 Created Content-Type: application/json Openstack-Request-Id: req-07dcf71a-76b8-47eb-9a7d-558cdd799c0e {"three": "three", "four": "four", "five": "five"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.079389s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries [0.054318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_drivers_raid_logical_disk_properties_get_member [0.120043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1ac4f568-a89a-4a6e-a4b6-a795effe8080 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation [0.082377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/things/ WITH {'three': 'three', 'four': 'fourrrr', 'five': 'five'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f22a6ab-e06d-450f-a00c-111cdab7c273 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.043650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.095603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.051757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_drivers_raid_logical_disk_properties_get_reader [0.132688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/raid/logical_disk_properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9c60b3e8-a716-4cf9-8d03-ee2aa9bf3003 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.044715s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.077355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_method.TestExpose.test_response_204 [0.121468s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/no_content WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-e4ec7c89-7707-4453-aae7-664d315239c7 {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.045533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors [0.025664s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.022357s] ... ok {2} ironic.tests.unit.api.test_method.TestExpose.test_response_content [0.097571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_content WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-807b1763-3b94-4b83-adcb-e456c61ab7ba "nothing" {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.043739s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_from_clean_step [0.138687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_methods_get_admin [0.172096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1ce53c61-b113-47cb-830b-0003ac50498a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status [0.065242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-1250f3e2-dfd7-44d4-ac86-0eb53d31ed8b "accepted" {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.059885s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_is_in_step_list [0.091256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_datetime_format [0.049643s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.052733s] ... ok {2} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_uuid_format [0.033783s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_drivers_vendor_passthru_methods_get_member [0.127880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-66e37a95-9ec5-4dbb-98d9-64dd81adb26a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.049785s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.088953s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid [0.045492s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.066532s] ... ok {2} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.052021s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.078657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_methods_get_reader [0.124880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b2d437d2-2d55-4e51-a71d-77e1ce16bf48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum [0.033465s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_glance [0.045449s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.083941s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.081749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_http_url [0.048348s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_drivers_vendor_passthru_get_admin [0.121202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7b91bf79-50f2-4ed8-81bf-02d4c6b9a4ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.065615s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_https_url [0.037168s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.089570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_not_allowed [0.036215s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.061373s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha256 [0.067146s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.057852s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.098752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_get_member [0.140828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3514675-3dc7-458a-91e5-cc98249e409d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha512 [0.052597s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.065066s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_no_checksum_file_url [0.029582s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.089736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url [0.027902s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_drivers_vendor_passthru_get_reader [0.113914s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru?method=test WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f2b790a4-2dd2-4558-9c67-9e5321b2fb53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_file [0.039330s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.114051s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_string [0.032372s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum [0.018904s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.111395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum_invalid [0.028362s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum [0.021117s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_file_not_found [0.018948s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_drivers_vendor_passthru_post_admin [0.146811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d4bc162b-9956-49d5-89a9-959bc5cc3d55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_hashlib_not_supports_algo [0.020886s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.086976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.126866s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mismatch [0.021838s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case [0.022175s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case_delimited [0.030477s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_md5 [0.019045s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.103567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_post_member [0.147151s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a799b894-d8ad-4657-9d4a-a6ca3691d08a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.182050s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.121159s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.121748s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_post_reader [0.197370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7ba19b9b-2aac-47d2-b1c8-36645a6b0071 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.138766s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.089291s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.072744s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.045391s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_drivers_vendor_passthru_put_admin [0.208065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d92ca18-310b-4d03-b88b-bac2d665ea9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.072330s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.064852s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_drivers_vendor_passthru_put_member [0.192782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6911ade8-56f3-4266-a071-b871a96ecafd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.049927s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_drivers_vendor_passthru_put_reader [0.056643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/drivers/fake-driverz/vendor_passthru?method=test WITH None GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-16d7f58f-a160-4211-b23e-fe7cdf8e7c1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.086879s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_drivers_vendor_passthru_delete_admin [0.137569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b13e7704-6ef1-4799-a4df-614410db2e24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.092712s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.587883s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_cinder.TestCinderClient.test__get_cinder_session [0.935848s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.071467s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.104620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_drivers_vendor_passthru_delete_member [0.139276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b412a8c3-0594-4445-8821-f9ed5c4d26a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.060310s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.049833s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.116939s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.053972s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_drivers_vendor_passthru_delete_reader [0.135278s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ddd7164e-cb8e-4a39-abca-3871ddd1cc34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.057983s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.082354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.059819s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.087723s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_get_admin [0.182109s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c224cefc-0b4d-4296-886f-8fc44d91e38b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-19T19:12:53.450418+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.057929s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.080562s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.161710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_nodes_bios_get_member [0.148961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbfb0738-8d18-495b-883f-b6459ee72e4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-19T19:12:53.610583+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.076983s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_nodes_bios_get_reader [0.165637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd249648-e512-4352-a825-cc66ee585c37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-19T19:12:53.749061+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.190921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.115207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_nodes_bios_bios_setting_get_admin [0.216947s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b6206f7-6ed4-479b-a5df-145a4244e930 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-19T19:12:53.976336+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.144398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_nodes_bios_bios_setting_get_member [0.131768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6ed16d2-c132-426f-8b62-1fe788641da8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-19T19:12:54.126072+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.100520s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.089677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_nodes_bios_bios_setting_get_reader [0.143141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4573135-3b0e-453c-87f3-13b9874bc8cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-19T19:12:54.258574+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.714522s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.107656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_get_admin [0.138667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-827f7399-d86e-4c62-8d40-9823d05291b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.079628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.159896s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.079390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_conductors_get_member [0.136629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-158f7b13-e5db-4dd0-a051-1b7bb99725ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.079525s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.080117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.067209s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_conductors_get_reader [0.127619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a13523b5-9ada-435c-bb67-bd6fb6ddf449 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.084368s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.061158s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.071721s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.072466s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_conductors_hostname_get_admin [0.125374s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04a2a3cd-d59f-4062-9790-72268819b1b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:12:54.801984+00:00", "updated_at": "2025-05-19T19:12:54.802603+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.068049s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.069399s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite [0.068627s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.063611s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_conductors_hostname_get_member [0.144266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a037ab01-4e8d-4e6c-9f4c-3b789aee5331 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:12:54.932961+00:00", "updated_at": "2025-05-19T19:12:54.933723+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.072676s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.063190s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.059357s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.071345s] ... ok {2} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_cinder_client_with_context [1.985125s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.064610s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.070810s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.063924s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_exception [0.078509s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ [0.035561s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.061225s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.039622s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.073011s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.042548s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_first_call_to_address [0.105306s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.050648s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.064663s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.046402s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.094444s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.054621s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.087568s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.068953s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.111151s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.086471s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.069268s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_try_different_cipher_suite [0.098610s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.090089s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.076108s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.083849s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.051777s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_conductors_hostname_get_reader [0.741076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23b7de1a-4528-4b15-8339-c8c41f347e2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-19T19:12:55.676144+00:00", "updated_at": "2025-05-19T19:12:55.682847+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [0.108983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_check_exit_code [0.057941s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.068658s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.057161s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_dual_bridging [0.071320s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.097329s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_post_admin [0.131844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-03c994bf-4f4d-4716-9a6b-96067d80b480 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.052308s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_empty_username [0.062461s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.064229s] ... ok {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.050850s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_ironic_retries [0.065197s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.062980s] ... ok {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.046904s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_allocations_post_member [0.148084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a8f5494e-79c7-498b-80e0-73ac4bffbe01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_port [0.072860s] ... ok {2} ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg [0.060668s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.081899s] ... ok {2} ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise [0.053394s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_caller_exception [0.069393s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_single_bridging [0.079511s] ... ok {2} ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable [0.046734s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_allocations_post_reader [0.163519s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8cc3c939-4234-4552-b906-8d74d96b679b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_str_password [0.082480s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timeout [0.075506s] ... ok {2} ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable [0.059924s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_known_exception [0.050979s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timing [0.060544s] ... ok {2} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.056524s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_unknown_exception [0.034298s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_timing [0.064427s] ... ok {2} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.057987s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_get_admin [0.166557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ccd68ef5-9c76-47a3-9f97-5c43b187b7e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "7c6ea09e-3127-4f70-8137-a4045f1db4d3", "created_at": "2025-05-19T19:12:56.267038+00:00", "updated_at": "2025-05-19T19:12:56.277893+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/7c6ea09e-3127-4f70-8137-a4045f1db4d3", "rel": "self"}, {"href": "http://localhost/allocations/7c6ea09e-3127-4f70-8137-a4045f1db4d3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_with_numeric_password [0.061095s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_write_exception [0.037118s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_username [0.062456s] ... ok {2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.058374s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__set_and_wait_explicit_reboot [0.051964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_str_password [0.050084s] ... ok {2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.046312s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_allocations_get_member [0.146124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-041c4981-cfa0-4668-917c-668666beb5a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "49e197cb-5643-41ad-83a6-c20d44ed4113", "created_at": "2025-05-19T19:12:56.432509+00:00", "updated_at": "2025-05-19T19:12:56.436080+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/49e197cb-5643-41ad-83a6-c20d44ed4113", "rel": "self"}, {"href": "http://localhost/allocations/49e197cb-5643-41ad-83a6-c20d44ed4113", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [0.069234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_with_numeric_password [0.054434s] ... ok {2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.053715s] ... ok {2} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.041179s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.055922s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [0.065285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.043534s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.052406s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.068034s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_access_via_auth_token_enabled [0.035885s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.039293s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_admin_if_config_enabled [0.038136s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_allocations_get_reader [0.203502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7115940-d4e5-47f3-b5a1-9f9ef534eb13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "23d1d7a4-c223-4214-b96d-9ca69620482b", "created_at": "2025-05-19T19:12:56.595924+00:00", "updated_at": "2025-05-19T19:12:56.614185+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/23d1d7a4-c223-4214-b96d-9ca69620482b", "rel": "self"}, {"href": "http://localhost/allocations/23d1d7a4-c223-4214-b96d-9ca69620482b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.031949s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_community_image [0.037977s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.102175s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.045471s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_private_image_owned_by_conductor [0.038808s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.042548s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_public_image [0.044023s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.031070s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.104083s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_shared_image_if_member [0.031980s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.029073s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_deny_private_image_different_owner [0.041331s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.030130s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.038135s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.083551s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.028556s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.065422s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_allocations_allocation_id_get_admin [0.255344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/29ec3bb4-3216-4ae8-abb0-07cbd8ab6e45 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b68ec85d-5a33-40fa-a16b-183520fbb573 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "29ec3bb4-3216-4ae8-abb0-07cbd8ab6e45", "created_at": "2025-05-19T19:12:56.840944+00:00", "updated_at": "2025-05-19T19:12:56.849543+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/29ec3bb4-3216-4ae8-abb0-07cbd8ab6e45", "rel": "self"}, {"href": "http://localhost/allocations/29ec3bb4-3216-4ae8-abb0-07cbd8ab6e45", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.029791s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.069635s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.031630s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.074346s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.031970s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.053331s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.082395s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.068024s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.065342s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.034748s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_allocations_allocation_id_get_member [0.193355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/89ec81ee-c063-492c-a6ce-b1cb212e9b29 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-852093f4-a2d8-4675-b34b-a6880425dc6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "89ec81ee-c063-492c-a6ce-b1cb212e9b29", "created_at": "2025-05-19T19:12:57.102019+00:00", "updated_at": "2025-05-19T19:12:57.114978+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/89ec81ee-c063-492c-a6ce-b1cb212e9b29", "rel": "self"}, {"href": "http://localhost/allocations/89ec81ee-c063-492c-a6ce-b1cb212e9b29", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.049488s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.101172s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.062113s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.117911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.065805s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.043002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_allocations_allocation_id_get_reader [0.160225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/1e8283bf-98ce-4113-83f4-18a83fcc431f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9ed3f75-274d-4c35-8f92-2ebd57f8843a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1e8283bf-98ce-4113-83f4-18a83fcc431f", "created_at": "2025-05-19T19:12:57.256566+00:00", "updated_at": "2025-05-19T19:12:57.265556+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1e8283bf-98ce-4113-83f4-18a83fcc431f", "rel": "self"}, {"href": "http://localhost/allocations/1e8283bf-98ce-4113-83f4-18a83fcc431f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.117799s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.042988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.056512s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console [0.060152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_node_busy [0.075606s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.128620s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.065459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_patch_admin [0.174610s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a81ca312-dab7-488a-b117-f3b0f2fd0824 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13bca9ad-0945-4191-92de-8616d6168a23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a81ca312-dab7-488a-b117-f3b0f2fd0824", "created_at": "2025-05-19T19:12:57.417252+00:00", "updated_at": "2025-05-19T19:12:57.517288+00:00", "candidate_nodes": [], "extra": {"test": "testing"}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/a81ca312-dab7-488a-b117-f3b0f2fd0824", "rel": "self"}, {"href": "http://localhost/allocations/a81ca312-dab7-488a-b117-f3b0f2fd0824", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.059724s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.063665s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.064943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_timeout [0.072181s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.060980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.066712s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.045587s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_allocations_allocation_id_patch_member [0.171092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/fd0b99dc-e30f-4b46-9e79-b56884237147 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89ef96ae-ced7-4153-96b0-88a3074b75a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fd0b99dc-e30f-4b46-9e79-b56884237147", "created_at": "2025-05-19T19:12:57.596804+00:00", "updated_at": "2025-05-19T19:12:57.682362+00:00", "candidate_nodes": [], "extra": {"test": "testing"}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/fd0b99dc-e30f-4b46-9e79-b56884237147", "rel": "self"}, {"href": "http://localhost/allocations/fd0b99dc-e30f-4b46-9e79-b56884237147", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.111305s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.066597s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.045283s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.032950s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.061910s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.086959s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.050422s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_allocations_allocation_id_patch_reader [0.129219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/3eabede6-0399-41ad-9b39-742a211d66f5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b1f3c8e-58ad-4c0a-9044-db224b99e63f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.053422s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.062713s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.081459s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.061047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console [0.045034s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_305_allocations_allocation_id_delete_admin [0.142193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/b07b6b69-b1c5-4ebd-8988-e3a3050e2992 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-71bd48e7-7782-413f-9fb1-869d8ccd44e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.101858s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.078323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.068373s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_306_allocations_allocation_id_delete_member [0.109279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/21679ee0-56b5-4f8c-bcc6-06ef564f3f9b GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c8cd0729-38ee-4c82-a65e-908376834c46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.105875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false [0.056284s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.142712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_307_allocations_allocation_id_delete_reader [0.078346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/bc2a1eaf-2448-45a3-ac57-beb8a12aa03c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-30dd4987-0eb0-4c03-8761-a4a6ebddf39e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.050586s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.105922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.045749s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_308_nodes_allocation_get_admin [0.083094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f47e13c-1943-4b91-9e0b-cc62e9c5d977 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c34ae5af-dcf7-4ed5-86cb-53ca7085878c", "created_at": "2025-05-19T19:12:58.214896+00:00", "updated_at": "2025-05-19T19:12:58.219739+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c34ae5af-dcf7-4ed5-86cb-53ca7085878c", "rel": "self"}, {"href": "http://localhost/allocations/c34ae5af-dcf7-4ed5-86cb-53ca7085878c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.040580s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.124766s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console [0.088176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.032318s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.057438s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_309_nodes_allocation_get_member [0.112255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc216f2f-fd27-48f8-9289-b66f7e7022f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d4a09468-df27-4b3e-a687-e4c257ce7b54", "created_at": "2025-05-19T19:12:58.311917+00:00", "updated_at": "2025-05-19T19:12:58.321681+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/d4a09468-df27-4b3e-a687-e4c257ce7b54", "rel": "self"}, {"href": "http://localhost/allocations/d4a09468-df27-4b3e-a687-e4c257ce7b54", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.087790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.081449s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.081964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_nodes_allocation_get_reader [0.135633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef1247d0-248b-4487-890d-93ce65511eb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c4166dab-def0-4436-8bd3-cce4b3bb9f76", "created_at": "2025-05-19T19:12:58.405469+00:00", "updated_at": "2025-05-19T19:12:58.409515+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "CUSTOM_TEST", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/c4166dab-def0-4436-8bd3-cce4b3bb9f76", "rel": "self"}, {"href": "http://localhost/allocations/c4166dab-def0-4436-8bd3-cce4b3bb9f76", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.075067s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.073023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_nodes_allocation_delete_admin [0.070522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-340d3a82-733f-4f12-bddd-a4b38fc16503 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.061741s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.057570s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.091736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.059715s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.092897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.045581s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_nodes_allocation_delete_member [0.188254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c611ee4e-4b1a-4053-afd3-4934bd6ceec0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.073264s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.095348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_nodes_allocation_delete_reader [0.151032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5a58bcd6-8f43-4dad-9bec-70b7b70c3c90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.104565s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.670906s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.041090s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_314_deploy_templates_post_admin [0.161894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/9fc6ceb4-fd70-49e5-97df-37218e30ef8d Openstack-Request-Id: req-684f408f-649d-47a1-ab95-084f704c6950 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9fc6ceb4-fd70-49e5-97df-37218e30ef8d", "created_at": "2025-05-19T19:12:59.072660+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9fc6ceb4-fd70-49e5-97df-37218e30ef8d", "rel": "self"}, {"href": "http://localhost/deploy_templates/9fc6ceb4-fd70-49e5-97df-37218e30ef8d", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.053062s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_handles_exceptions [0.053065s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success [0.052294s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_315_deploy_templates_post_member [0.149861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eff6a1f5-802e-4fd2-9b5d-88aaf09368a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success_verify_false [0.059455s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.075966s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_316_deploy_templates_post_reader [0.185748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ff44be0-ad42-4ad4-bf38-1057e8962d2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.627913s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.059338s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled [0.058544s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.083990s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_get_admin [0.147024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e2d8448-6386-4cc1-863f-1a0d88f4095d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "10c87a72-f97e-474d-93d9-6b1e38435d53", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/10c87a72-f97e-474d-93d9-6b1e38435d53", "rel": "self"}, {"href": "http://localhost/deploy_templates/10c87a72-f97e-474d-93d9-6b1e38435d53", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.070704s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.069937s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.057420s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.057314s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.741419s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.055748s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.051745s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_get_member [0.161418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-754405b0-af95-45ad-9c7a-cdd467b6a5fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "5b24f79f-2120-4282-890f-63f2a6c4b144", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/5b24f79f-2120-4282-890f-63f2a6c4b144", "rel": "self"}, {"href": "http://localhost/deploy_templates/5b24f79f-2120-4282-890f-63f2a6c4b144", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.056236s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.062522s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.112682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.049968s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.048599s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.108231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_get_reader [0.168077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98e83493-a38f-42de-aa98-a0ec50aaf7d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "ab57a371-4bc1-4b8d-8730-844b8ff1a05c", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ab57a371-4bc1-4b8d-8730-844b8ff1a05c", "rel": "self"}, {"href": "http://localhost/deploy_templates/ab57a371-4bc1-4b8d-8730-844b8ff1a05c", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.046180s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.139749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.044624s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.098270s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.043429s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.074353s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.050969s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_get_admin [0.178343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/d350c361-d1bc-4dc9-b81a-6a967827efb3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2886f53a-707d-46bb-b5a6-d88842608615 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d350c361-d1bc-4dc9-b81a-6a967827efb3", "created_at": "2025-05-19T19:12:59.999441+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d350c361-d1bc-4dc9-b81a-6a967827efb3", "rel": "self"}, {"href": "http://localhost/deploy_templates/d350c361-d1bc-4dc9-b81a-6a967827efb3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.095605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.051993s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.076855s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.041775s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.093689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.041595s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.038099s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.120983s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.079763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_get_member [0.208289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/613044c1-57e3-4331-9cc4-9445ade8311a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc277072-3fa8-451e-86fd-56ce06986ab8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "613044c1-57e3-4331-9cc4-9445ade8311a", "created_at": "2025-05-19T19:13:00.191354+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/613044c1-57e3-4331-9cc4-9445ade8311a", "rel": "self"}, {"href": "http://localhost/deploy_templates/613044c1-57e3-4331-9cc4-9445ade8311a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.062455s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.066164s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.049344s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.115981s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.045279s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.095032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.039530s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.036706s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.110077s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.075605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.036513s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_get_reader [0.260331s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/d640f77f-5731-4a2f-8176-d9c5e9520b2d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22062316-7672-465f-8987-55d693cd308e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d640f77f-5731-4a2f-8176-d9c5e9520b2d", "created_at": "2025-05-19T19:13:00.439236+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d640f77f-5731-4a2f-8176-d9c5e9520b2d", "rel": "self"}, {"href": "http://localhost/deploy_templates/d640f77f-5731-4a2f-8176-d9c5e9520b2d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.045955s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.080472s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.036747s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.125069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.036649s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific [0.041820s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_bad_format [0.039310s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.148878s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.101144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_not_specific [0.060229s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.066276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference [0.062062s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.109653s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_patch_admin [0.314987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/bdbf4391-cadc-48e4-a44c-f0024e6a35f2 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c5794c0-5d60-46f2-af48-b8f95050e481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bdbf4391-cadc-48e4-a44c-f0024e6a35f2", "created_at": "2025-05-19T19:13:00.685721+00:00", "updated_at": "2025-05-19T19:13:00.843023+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bdbf4391-cadc-48e4-a44c-f0024e6a35f2", "rel": "self"}, {"href": "http://localhost/deploy_templates/bdbf4391-cadc-48e4-a44c-f0024e6a35f2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference_just_digest [0.052160s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.074109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image [0.052586s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.062769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.115125s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_aarch64 [0.046515s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_bad_manifest [0.097848s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.150672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_324_deploy_templates_deploy_template_id_patch_member [0.292203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/449a8ee3-5823-421b-8a1f-58d0be7cfb7e WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6e5daed1-605d-46c2-9235-a0b6db1e8b91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_local [0.068330s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.238761s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_specific_digest [0.057642s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_show [0.051604s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_validate_href [0.036085s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.203946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.051199s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.057113s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.051846s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_325_deploy_templates_deploy_template_id_patch_reader [0.315075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b17ebd16-9484-43ec-9eea-7ec96d092541 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-52b4205c-6eab-43da-ad9a-b1cd9bd61b61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.190652s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.297570s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.042924s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.043335s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override [0.038478s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_data [0.040238s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_user_auth [0.046727s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_parse_sleep_range [0.193790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.046898s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_oci_url [0.045440s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.283438s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_326_deploy_templates_deploy_template_id_delete_admin [0.337819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/d809e2b7-8816-42fa-897e-b952f6c5ca32 GOT Response: 204 No Content Openstack-Request-Id: req-61aa40bc-46f2-45c8-b97b-7078903093ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_is_container_registry_url [0.049907s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.053956s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.194117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.047160s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.049203s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files [0.059230s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.255134s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.163594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.055152s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_327_deploy_templates_deploy_template_id_delete_member [0.250815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/00913688-0e77-4b1a-86db-9c8d8eb55335 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7f3afed4-9538-4387-9261-d86b66c6355e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.029883s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.033754s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.025569s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.020743s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_range [0.161670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.052727s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.234106s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.058037s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_deploy_templates_deploy_template_id_delete_reader [0.247322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/f0bc2ba6-6c1d-4081-823c-83e3de427543 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4c5b5915-e464-4905-a79c-54eb73ad30ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.042489s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.166813s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.033582s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.039273s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.026017s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.025107s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.024256s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.236108s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.027143s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.157711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.037935s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_post_admin [0.247163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e600bb7a-03c3-45d9-98b3-eb2590e013d6 Openstack-Request-Id: req-b1da0d0a-147e-4b85-aa20-8e8b5c477339 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e600bb7a-03c3-45d9-98b3-eb2590e013d6", "created_at": "2025-05-19T19:13:02.569355+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e600bb7a-03c3-45d9-98b3-eb2590e013d6", "rel": "self"}, {"href": "http://localhost/chassis/e600bb7a-03c3-45d9-98b3-eb2590e013d6", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e600bb7a-03c3-45d9-98b3-eb2590e013d6/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e600bb7a-03c3-45d9-98b3-eb2590e013d6/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.027697s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.125630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.174948s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_post_member [0.191937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4a54e2e0-96f6-486e-8462-e3591fa980d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector [0.121097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.163342s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.301479s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios [0.113820s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.024327s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [0.020368s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.021098s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_post_reader [0.185765s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-236eb565-244b-4507-985c-13a788a6449d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.034710s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.094554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.159919s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.045917s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.028378s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.081065s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.029542s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.017811s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.042511s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.085082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_332_chassis_get_admin [0.236781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1094f5f-5444-42ba-9692-cbe4ce56e1ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_error_cases [0.055519s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.212405s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.079177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_path_dot_slash_notation [0.050347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_with_dict_loop [0.075230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.089507s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_get_member [0.193319s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40b16985-7466-48b0-960d-152b5e227720 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.177281s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.082915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.070644s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_with_list_loop [0.146329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.100628s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.076522s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_334_chassis_get_reader [0.201706s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa6917bf-81d3-4b53-aace-f5b964b0e4e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.069886s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.099585s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_add_trait_action [0.178195s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.076522s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.099607s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.086210s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_del_attribute_action [0.135039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.093098s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_del_port_attribute_action [0.080773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.097558s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.090948s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.094867s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_attribute_action [0.112221s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.093781s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.058985s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_plugin_data_action [0.064646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.071573s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.081612s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_port_attribute_action [0.099850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.063080s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.079332s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.086626s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_fail_action [0.125317s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.080400s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.068807s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.066078s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_log_action [0.103295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.083514s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_get_service [0.843603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71f34f87-a8ce-4654-931c-f2ccad491b53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.071256s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_remove_trait_action [0.113937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.089202s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.053692s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.069106s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.093867s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_336_chassis_detail_get_admin [0.173523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac2b5612-ce62-4eb7-9b4e-79b03891ab92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:04.547101+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_attribute_action [0.139623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.069792s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.094761s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.060795s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_capability_action [0.084314s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.073951s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_detail_get_member [0.183959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f72fa377-09bb-4533-95f7-af5c14fbbd93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:04.734561+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.098372s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_plugin_data_action [0.104236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.065937s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.101769s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.069251s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_port_attribute_action [0.103819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_unset_capability_action [0.050850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.081620s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_detail_get_reader [0.215178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cc1636f-9938-4607-8578-69e7b9332fad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:04.914868+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.110407s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestActions.test_unset_plugin_data_action [0.049857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.073189s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_is_true_false_operators_edge_cases [0.050551s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.075523s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_oneofoperator_edge_cases [0.052629s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.076144s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.056016s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_exceptions [0.058471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_get_admin [0.211752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69ed7e95-da3f-4b65-9392-2369c3a9e03c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:05.142063+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.064760s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.083900s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.050436s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.030961s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_with_loop [0.134167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.100781s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.050180s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.025577s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.032651s] ... ok {2} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_rule_operators [0.085478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.087154s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.032064s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure [0.037782s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.020587s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_version_and_cap [0.019902s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_get_member [0.283229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2bdb310-65a5-4a55-b580-2f2661418d92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:05.404174+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create [0.051945s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.095724s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.037350s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv4_success [0.052252s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.039502s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success [0.033922s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success_rfc2732 [0.020739s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.107134s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.019913s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.054137s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.018676s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap [0.019500s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.018345s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_client_ssl [0.023215s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.107571s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_ssl [0.029260s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version [0.022107s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_get_reader [0.278121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80546b43-1530-4f4e-be34-c478b4eecc72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:05.705463+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure [0.027059s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.072961s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success [0.027230s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.020325s] ... ok {2} ironic.tests.unit.common.test_json_rpc.TestClient.test_mask_secrets [0.020279s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.070971s] ... ok {2} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.063274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.306715s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.085650s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.027017s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found [0.036939s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_patch_admin [0.240068s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-535f3a80-9aeb-440e-b0fd-51ef6b56c41b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:05.910913+00:00", "updated_at": "2025-05-19T19:13:06.033190+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.077137s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.039949s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.017543s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.017137s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.018935s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.018028s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.034557s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.024376s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.023481s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.017743s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_patch_member [0.232022s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8309760-aea4-48f2-abb4-233cc2b52711 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-19T19:13:06.163141+00:00", "updated_at": "2025-05-19T19:13:06.268603+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.028333s] ... ok {2} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.380882s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.050161s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.018484s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.020049s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.035413s] ... ok {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.142531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.069667s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.029504s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_chassis_chassis_id_patch_reader [0.246835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-11611f10-91ac-4837-a855-cb33065f1b1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.084624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.019662s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.019735s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.027861s] ... ok {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.063224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.024808s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.020395s] ... ok {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.058594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.047380s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_chassis_chassis_id_delete_admin [0.209529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-d6a6fe71-d7d5-42d1-aba2-e2264cab9421 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.041129s] ... ok {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.083976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.029990s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.748426s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.035263s] ... ok {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.080622s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.033192s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.056600s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.026137s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.020726s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_chassis_chassis_id_delete_member [0.170899s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8605f62b-69f2-4597-b0d0-b59cb685b596 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.064091s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.104278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.037919s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.024233s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.058507s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.027978s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.079763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.024064s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.054776s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.026777s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_347_chassis_chassis_id_delete_reader [0.154330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cad8ca05-ec04-478b-bde6-5699d8612eef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.028415s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.073509s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.040270s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.144518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.041855s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.071521s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.019558s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_348_chassis_chassis_id_delete_service [0.136537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9899cc29-6787-4ee4-86fb-8e157ccc8191 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.021428s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.031170s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.069032s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.100802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.030884s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.021673s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.019793s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.085140s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.020461s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_349_node_history_get_admin [0.153628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eddbaa9e-c3e6-4915-a70b-f438b8b975fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "e6e70cc6-ce06-4071-a628-ac501498800f", "created_at": "2025-05-19T19:13:07.319552+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e6e70cc6-ce06-4071-a628-ac501498800f", "rel": "self"}]}]} {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.096743s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.025481s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.029513s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.082977s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.028581s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.033583s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.066403s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_350_node_history_get_member [0.135885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3e5ec9c-2bca-42dc-8089-e781274cb71b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "77e161ab-905a-44c4-830c-772646c37d25", "created_at": "2025-05-19T19:13:07.461174+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/77e161ab-905a-44c4-830c-772646c37d25", "rel": "self"}]}]} {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.026832s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.148548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.036200s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_deny_macs [0.025961s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.088882s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.026043s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_only_new_macs [0.048614s] ... ok {3} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.080124s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.183094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_removed_nodes [0.063823s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_history_get_reader [0.224963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2f45aef-3aac-4212-8906-e2b3e4c0c2cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "95382897-f437-4950-8ecb-b048a4401b78", "created_at": "2025-05-19T19:13:07.660976+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/95382897-f437-4950-8ecb-b048a4401b78", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.066064s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.072839s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.105638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.059112s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces [0.145670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_history_get_service [0.174520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90f6d39e-b538-4d33-aedd-162bee7ba7e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "7dec3089-e9ec-4999-a5e4-923dde4606db", "created_at": "2025-05-19T19:13:07.840599+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7dec3089-e9ec-4999-a5e4-923dde4606db", "rel": "self"}]}]} {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.076785s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.147112s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.040220s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.152788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_admin [0.175382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c64478ad-18fd-48dd-8448-1ab04e4f759b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ac3ed32-e3c3-48bf-b8ad-d4da3e2db27e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c64478ad-18fd-48dd-8448-1ab04e4f759b", "created_at": "2025-05-19T19:13:08.059945+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c64478ad-18fd-48dd-8448-1ab04e4f759b", "rel": "self"}]} {2} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.181972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.073953s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.179425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_354_node_history_get_entry_member [0.165845s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f3f8897d-e1eb-44b7-83ec-3290fceee72e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37a0ee2e-c906-48ee-9dde-84993c7bba57 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f3f8897d-e1eb-44b7-83ec-3290fceee72e", "created_at": "2025-05-19T19:13:08.208084+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f3f8897d-e1eb-44b7-83ec-3290fceee72e", "rel": "self"}]} {2} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.059069s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.047987s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.039205s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_node_history_get_entry_reader [0.138307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c0bc9945-c833-4ea9-a189-fb50203f8b0c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0155e750-57f7-4553-b3f5-6b353ccc04f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c0bc9945-c833-4ea9-a189-fb50203f8b0c", "created_at": "2025-05-19T19:13:08.368770+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c0bc9945-c833-4ea9-a189-fb50203f8b0c", "rel": "self"}]} {2} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.058899s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.190383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.040555s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l2 [0.052559s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_356_node_inventory_get_admin [0.171379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/inventory WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a42372a-9604-466a-a9f0-eace25f74afe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l3 [0.069131s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.170781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.045419s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.070353s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_357_node_inventory_get_reader [0.149368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/inventory WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a88072a-eb67-48ab-8238-b9c2bf4a8411 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.038915s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.139781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.062649s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.052237s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_358_node_history_get_entry_service [0.162539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6804e25f-9dd5-4bbf-8308-cb2095b55ccc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9291f763-8ed8-4064-97ac-fb31810adf7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6804e25f-9dd5-4bbf-8308-cb2095b55ccc", "created_at": "2025-05-19T19:13:08.846093+00:00", "severity": "ERROR", "event_type": "provisioning", "event": "Something is wrong", "conductor": "host-1", "user": "fake-user", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6804e25f-9dd5-4bbf-8308-cb2095b55ccc", "rel": "self"}]} {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.044416s] ... ok {3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.153945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.065203s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.080666s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_359_shard_get_shards [0.134673s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-037fc9ff-99dd-4804-83ee-ce6b1ead6a60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "None", "count": 3}]} {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.080028s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.064775s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.072736s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.102165s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.055900s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.060943s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_shard_patch_set_node_shard [0.233372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/shard', 'value': 'TestShard'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ab76814e-6f1a-433d-b5b6-0d6eb7319428 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.098696s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.046621s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.037097s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.063539s] ... ok {2} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url [0.051701s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.051226s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_361_shard_patch_set_node_shard_disallowed [0.159381s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/shard', 'value': 'TestShard'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-308a8906-3989-4c64-b924-481cba512c3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url_adds_oci [0.044514s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.041563s] ... ok {2} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_client_init_make_session [0.054623s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.051022s] ... ok {2} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_get_blob_url [0.058140s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.052374s] ... ok {2} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url [0.041912s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.045846s] ... ok {2} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_digest [0.037526s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_parent_node_patch_by_admin [0.227305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/parent_node', 'value': '22e26c0b-03f2-4d2e-ae87-c02d7f33c000'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ee2116dd-0b03-42b6-b10c-362e5d047f52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.046159s] ... ok {2} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_tag [0.061726s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.057510s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.055648s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.046139s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.105035s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.040463s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.039341s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.020758s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.024514s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.030590s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.127092s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_363_parent_node_patch_by_member [0.328845s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/parent_node', 'value': '22e26c0b-03f2-4d2e-ae87-c02d7f33c000'}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-295f3704-6195-4e11-ac8d-35b8199c483c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.058409s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.027486s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.024509s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.023670s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.024511s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.023691s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.221073s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.030210s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.022359s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.026949s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.032561s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_364_parent_node_patch_by_reader [0.298959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH [{'op': 'replace', 'path': '/parent_node', 'value': '22e26c0b-03f2-4d2e-ae87-c02d7f33c000'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d78016f4-3b47-4431-a8b9-a3b51f13c113 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.058300s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden [0.029952s] ... ok {2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.189279s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.088082s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.074405s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields [0.064970s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_365_nodes_firmware_component_get_admin [0.244264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/firmware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42e52042-cdc8-4d4f-b217-0a6af948f8fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": [{"created_at": "2025-05-19T19:13:10.453195+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.073991s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.060908s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.078819s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.049470s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.047996s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.094947s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.047273s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_366_nodes_firmware_component_get_member [0.252322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/firmware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b32e5b08-3025-4766-afca-bdf758a97b6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": [{"created_at": "2025-05-19T19:13:10.699645+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.063399s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.047600s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.052986s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.048915s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_367_nodes_firmware_component_get_reader [0.205248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/firmware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d6417c4-3ba1-4131-8dfc-c114d006113e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": [{"created_at": "2025-05-19T19:13:10.922649+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.057887s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.093321s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_368_runbooks_post_admin [0.188816s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/735fb5d4-2111-48b9-afa2-4070fc5b7da8 Openstack-Request-Id: req-e36bb028-4d93-4a7a-87e6-572e7c911fb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "735fb5d4-2111-48b9-afa2-4070fc5b7da8", "created_at": "2025-05-19T19:13:11.161900+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/735fb5d4-2111-48b9-afa2-4070fc5b7da8", "rel": "self"}, {"href": "http://localhost/runbooks/735fb5d4-2111-48b9-afa2-4070fc5b7da8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.100600s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.061841s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.051103s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.613312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_369_runbooks_post_member [0.151560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/007d74ba-3fda-44e5-9e19-5bbf7b6a195e Openstack-Request-Id: req-2fbf5a22-0f00-4de7-9d22-e57f063d8a73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "007d74ba-3fda-44e5-9e19-5bbf7b6a195e", "created_at": "2025-05-19T19:13:11.318767+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/007d74ba-3fda-44e5-9e19-5bbf7b6a195e", "rel": "self"}, {"href": "http://localhost/runbooks/007d74ba-3fda-44e5-9e19-5bbf7b6a195e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.065044s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.098522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.062016s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_370_runbooks_post_reader [0.146233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5b4294ef-6cc8-4256-a19c-50c4601d2403 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.063995s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.109606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.049683s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.056675s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_371_runbooks_get_admin [0.156655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9291de0-f97b-42b6-9627-5e01701da19c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "b838d28a-c252-4ffe-a734-75e70bb3493a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b838d28a-c252-4ffe-a734-75e70bb3493a", "rel": "self"}, {"href": "http://localhost/runbooks/b838d28a-c252-4ffe-a734-75e70bb3493a", "rel": "bookmark"}]}]} {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.072297s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.141020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_372_runbooks_get_member [0.101424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86c2f546-87ea-4b49-843e-490ee3f4c86b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "d60b191a-9c92-47e8-ac84-3e40889687c5", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/d60b191a-9c92-47e8-ac84-3e40889687c5", "rel": "self"}, {"href": "http://localhost/runbooks/d60b191a-9c92-47e8-ac84-3e40889687c5", "rel": "bookmark"}]}]} {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.081008s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.093775s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.194080s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_373_runbooks_get_reader [0.149265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d191e1e7-4291-418d-ab8c-e64bf48acd82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "196af7a2-bcb1-4620-87c7-90a415d9f921", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/196af7a2-bcb1-4620-87c7-90a415d9f921", "rel": "self"}, {"href": "http://localhost/runbooks/196af7a2-bcb1-4620-87c7-90a415d9f921", "rel": "bookmark"}]}]} {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.104395s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_374_runbooks_runbook_id_get_admin [0.069209s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/53b7fa85-d606-4804-b0a1-eba99a46892e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ca5d7ff-c0fd-4383-b1b3-f9c18eec9ba6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "53b7fa85-d606-4804-b0a1-eba99a46892e", "created_at": "2025-05-19T19:13:11.945048+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/53b7fa85-d606-4804-b0a1-eba99a46892e", "rel": "self"}, {"href": "http://localhost/runbooks/53b7fa85-d606-4804-b0a1-eba99a46892e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.073808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.177591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_375_runbooks_runbook_id_get_member [0.127377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/bf448b83-137a-4e27-8c69-9a4129dc0c2b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3932369-acc9-4aba-89b2-cf844ea24efe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bf448b83-137a-4e27-8c69-9a4129dc0c2b", "created_at": "2025-05-19T19:13:12.065395+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/bf448b83-137a-4e27-8c69-9a4129dc0c2b", "rel": "self"}, {"href": "http://localhost/runbooks/bf448b83-137a-4e27-8c69-9a4129dc0c2b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.069037s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.143386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.098195s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_376_runbooks_runbook_id_get_reader [0.127328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/44b2e5f4-51cd-4fc4-8e5b-9e2da97042ad WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de4720ae-75d1-4c4f-8385-69d8fbc3ab0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "44b2e5f4-51cd-4fc4-8e5b-9e2da97042ad", "created_at": "2025-05-19T19:13:12.186609+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/44b2e5f4-51cd-4fc4-8e5b-9e2da97042ad", "rel": "self"}, {"href": "http://localhost/runbooks/44b2e5f4-51cd-4fc4-8e5b-9e2da97042ad", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.079814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_377_runbooks_runbook_id_patch_admin [0.099380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7a5e036a-c5cb-4bc0-9bcb-6d5cf44b5776 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-91e930b3-8d59-421f-9370-1dcb6f77a873 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7a5e036a-c5cb-4bc0-9bcb-6d5cf44b5776", "created_at": "2025-05-19T19:13:12.277081+00:00", "updated_at": "2025-05-19T19:13:12.306406+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7a5e036a-c5cb-4bc0-9bcb-6d5cf44b5776", "rel": "self"}, {"href": "http://localhost/runbooks/7a5e036a-c5cb-4bc0-9bcb-6d5cf44b5776", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.085759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.174441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_378_runbooks_runbook_id_patch_member [0.133137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a397d057-f657-4654-86e8-7bb095c2e231 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb3459d2-a959-476d-8d54-9d0346771f82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a397d057-f657-4654-86e8-7bb095c2e231", "created_at": "2025-05-19T19:13:12.413671+00:00", "updated_at": "2025-05-19T19:13:12.440208+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a397d057-f657-4654-86e8-7bb095c2e231", "rel": "self"}, {"href": "http://localhost/runbooks/a397d057-f657-4654-86e8-7bb095c2e231", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.079061s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress [0.156590s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.079369s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.085576s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_379_runbooks_runbook_id_patch_reader [0.340507s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7a9ec57a-db59-4ae3-be2b-1b63f795968c WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95a573ed-1ce2-4a1a-98ad-3157f1591861 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.078417s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.089892s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_380_runbooks_runbook_id_patch_public_admin [0.134964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/26a55d26-e687-4068-a3e0-b5b0f8addf40 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7247a41-9a7b-4afb-897d-847a1c72a158 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "26a55d26-e687-4068-a3e0-b5b0f8addf40", "created_at": "2025-05-19T19:13:12.845791+00:00", "updated_at": "2025-05-19T19:13:12.913260+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/26a55d26-e687-4068-a3e0-b5b0f8addf40", "rel": "self"}, {"href": "http://localhost/runbooks/26a55d26-e687-4068-a3e0-b5b0f8addf40", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.147060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_381_runbooks_runbook_id_patch_public_member [0.165096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ce7818d5-326f-48aa-9b5f-dbee3d24d0b2 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6279c2f0-eceb-4246-996b-14b409cd9575 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ce7818d5-326f-48aa-9b5f-dbee3d24d0b2", "created_at": "2025-05-19T19:13:13.028245+00:00", "updated_at": "2025-05-19T19:13:13.082760+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ce7818d5-326f-48aa-9b5f-dbee3d24d0b2", "rel": "self"}, {"href": "http://localhost/runbooks/ce7818d5-326f-48aa-9b5f-dbee3d24d0b2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.708215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_382_runbooks_runbook_id_patch_public_reader [0.093155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/47eae828-bf9b-43c1-87f5-f132454a3fb7 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c98f5ba1-792d-47b0-897e-d1f53c3baf12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.155597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_383_runbooks_runbook_id_patch_owner_admin [0.099304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/20631989-9434-44ff-8d38-088fc030c421 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e233a36d-f17a-44c7-ac9d-4548cc6373f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "20631989-9434-44ff-8d38-088fc030c421", "created_at": "2025-05-19T19:13:13.239786+00:00", "updated_at": "2025-05-19T19:13:13.276313+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/20631989-9434-44ff-8d38-088fc030c421", "rel": "self"}, {"href": "http://localhost/runbooks/20631989-9434-44ff-8d38-088fc030c421", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.177921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.163349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_384_runbooks_runbook_id_patch_owner_member [0.124658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/87821291-6ad7-4638-9b5a-32636cb3b115 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f56811c-1e06-4a87-b923-e78d4c59748d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "87821291-6ad7-4638-9b5a-32636cb3b115", "created_at": "2025-05-19T19:13:13.362870+00:00", "updated_at": "2025-05-19T19:13:13.398946+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/87821291-6ad7-4638-9b5a-32636cb3b115", "rel": "self"}, {"href": "http://localhost/runbooks/87821291-6ad7-4638-9b5a-32636cb3b115", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.109166s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_385_runbooks_runbook_id_patch_owner_reader [0.070887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/889eccb9-5317-4d17-9d07-720deab1065a WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fe521b81-f121-44f3-82e2-87a976a9f8e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.076910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.160426s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_386_runbooks_runbook_id_delete_admin [0.071903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/a7c6b0d8-2270-497d-9141-061cf9e417d5 GOT Response: 204 No Content Openstack-Request-Id: req-f00943e8-baa1-41db-a140-e2660b97f6a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.108784s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_387_runbooks_runbook_id_delete_member [0.088462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/5066fa03-ddaf-464f-bd0a-e3b8410b0d7f GOT Response: 204 No Content Openstack-Request-Id: req-e9d7733f-c783-4cc1-9e8d-7c1f271403d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.139681s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_388_runbooks_runbook_id_delete_reader [0.056176s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/a1d6bca4-725f-417c-aed0-99fca8847e46 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec1c4e10-14f9-4107-9fcb-8a2c52a9e11f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.074344s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.081695s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.130948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_389_runbooks_post_project_admin [0.115839s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/3707af9a-4f00-4163-8f1c-82a78d5c06e4 Openstack-Request-Id: req-f94d5ff3-c6a1-4fd2-a9b5-2d66277480e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3707af9a-4f00-4163-8f1c-82a78d5c06e4", "created_at": "2025-05-19T19:13:13.808030+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3707af9a-4f00-4163-8f1c-82a78d5c06e4", "rel": "self"}, {"href": "http://localhost/runbooks/3707af9a-4f00-4163-8f1c-82a78d5c06e4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing [0.074332s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.131221s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.058476s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_390_public_runbooks_post_admin [0.135067s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_NAME', 'public': True, 'steps': [{'interface': 'raid', 'step': 'noop', 'args': {}, 'order': 0}]} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/runbooks/092a2f79-a2af-4a04-a8ba-1b9cfb04dfd1 Openstack-Request-Id: req-6f84210e-2886-4bd1-9719-49dcbe676403 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "092a2f79-a2af-4a04-a8ba-1b9cfb04dfd1", "created_at": "2025-05-19T19:13:13.933121+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/092a2f79-a2af-4a04-a8ba-1b9cfb04dfd1", "rel": "self"}, {"href": "http://localhost/runbooks/092a2f79-a2af-4a04-a8ba-1b9cfb04dfd1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.064678s] ... ok {1} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.068245s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85ca9174-4638-4f04-b0f4-fbe7edb3806a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.109858s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove [0.065208s] ... ok {1} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.054787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 401 Unauthorized Content-Type: application/json Www-Authenticate: Basic realm="Baremetal API" {"error":{"message":"Authorization required","code":401}} {1} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.062012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b88aa399-370e-418f-b896-62c7d7c29b99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.083766s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.129550s] ... ok {1} ironic.tests.unit.common.test_args.ValidateTypesTest.test_types [0.055105s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.065502s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.099967s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.081829s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.069651s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.061123s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.067258s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.056312s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.133176s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.091313s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.071765s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.068261s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.117308s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.097412s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.066485s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.059454s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.112400s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.061568s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.049415s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.069011s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.050901s] ... ok {3} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.048446s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.123590s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.072775s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.072221s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.082768s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.046015s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.077590s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.053968s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.113082s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.061906s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.136674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name [0.049481s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.103028s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.043192s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.101843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.057627s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.090149s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner [0.054523s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.113648s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.044960s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.128331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.050594s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.054484s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.134474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.123054s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.077212s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.054493s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.144199s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.056676s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.133936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.072104s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.115569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.129790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.075903s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.094701s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.062223s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.112321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.052270s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.045886s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.127661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.043526s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv6 [0.132388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.048941s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.044347s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.128258s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.043428s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.138919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.049182s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.094032s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.052053s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.046044s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.110518s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios [0.157394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.069139s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.063670s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.044927s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.063068s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.057513s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.045279s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.064966s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.051814s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.047935s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.066511s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.061967s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.041776s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.052938s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.054096s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.039836s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.050565s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.049890s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.065552s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.035381s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.062420s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.057308s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.044758s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.042366s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.059829s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.056767s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.044650s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.065661s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_link_mac_pxe_configs_with_pxe_disabled [0.118668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.036722s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.052050s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.042417s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config [0.066807s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.044155s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.059940s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.086996s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.060690s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_pxe_config [0.118650s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.084422s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.050772s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.059131s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.033448s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.051688s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.039961s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.069206s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.055308s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.055168s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_copy [0.083439s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.052925s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.083142s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.050856s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.061793s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.087817s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.037284s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.050239s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.038160s] ... ok {1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.052741s] ... ok {1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.045927s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.082029s] ... ok {1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.047311s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled [0.087689s] ... ok {1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.070227s] ... ok {1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.088929s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.065519s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.562708s] ... ok {2} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.037510s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.472939s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.036624s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.109377s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.046531s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_resolve [0.045929s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple [0.044583s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple_https [0.038541s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_with_path_and_port [0.041632s] ... ok {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_failure [0.115253s] ... ok {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_ok [0.121496s] ... ok {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_interfaces [0.117053s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.824351s] ... ok {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_params [0.081858s] ... ok {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_race [0.082297s] ... ok {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.048179s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.087956s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.088355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.062354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.041334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json [0.061236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [0.062818s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.095670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.048410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error [0.079807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.046070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http [0.062091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error [0.086892s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.086268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift [0.070621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.044311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [1.392046s] ... ok {1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.452546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.055491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid [0.027026s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_failure [0.018411s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_missing_segment [0.019735s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [0.922042s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [1.786382s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [1.179140s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_object_fails [1.622680s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [1.347700s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [0.768879s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.020281s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.018879s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.018551s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.020653s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.018268s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.027549s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.028800s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.037889s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.036311s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.044349s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.060372s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 [0.063806s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.055378s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data [1.738294s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.052278s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.034235s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.027576s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.024852s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.031820s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.030215s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.050921s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.058184s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.047313s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.459653s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.035302s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.046265s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.062694s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.037052s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.071805s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.070634s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.055394s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.037061s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.021486s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.026381s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.067168s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.053412s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.060578s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.059835s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.067909s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.054862s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [1.671909s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.071683s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.069486s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.065623s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.054755s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.044852s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.068854s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.046191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.049148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.047037s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.091761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.118925s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.138647s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_hexadecimal_lunid [0.096985s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.079883s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.117371s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.075242s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.057912s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.044656s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.048310s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.038345s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [1.490914s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.049824s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.045633s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.042732s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.045704s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.039318s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.036400s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.060012s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.034555s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.036571s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.043057s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.050140s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.041726s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.510769s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.039248s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.049125s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.036901s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.029612s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.033977s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.041555s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.029959s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.046442s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [1.463857s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.052213s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.044909s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.090830s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs [0.062446s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_label [0.109393s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unexpected_error [0.079983s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs [0.047383s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.047735s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.027318s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.023208s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.034107s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.021253s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.019254s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.023813s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient [0.027779s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.019770s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.030261s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.044005s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.052011s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.105974s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.062162s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.123461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.082621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.136518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.044403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.095359s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [1.551170s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.116846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.096160s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.069169s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.139281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.113345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.103047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.059126s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.105180s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.899379s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.100698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.124657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.117923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.120187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.166994s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.118742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.095273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.207601s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [1.104148s] ... ok {2} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.021625s] ... ok {2} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.028985s] ... ok {2} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.024821s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.204485s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.153441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.277051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.121826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.107219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.400241s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.139039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.091179s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.101550s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.168266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.078773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.125986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call [0.100638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.061914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.103439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.052611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.045110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.133891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.135891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.237631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.066933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.146309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.121524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.044955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.131147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.080967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.130428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.073249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.075283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.095246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.096552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.313495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_without_jsonrpc_port_pined_version [0.082418s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.081228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.148656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.080645s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.099452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.096533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.078920s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.055435s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.905656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [0.382606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.194145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.072027s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_bios_boot_mode_fails [0.086387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_uefi_boot_mode_fails [0.078868s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.113072s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.068627s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.078881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false [0.219887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current [0.201862s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false_even_if_src_set [0.266464s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.218170s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_instance [0.234921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.192197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_none [0.200067s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.165173s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_request [0.202872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.210503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.239303s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.345035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.110734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_update_fails_on_invalid_boot_mode [0.035904s] ... ok {2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.089537s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full [0.325984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.054689s] ... ok {2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.041422s] ... ok {2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.041945s] ... ok {2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.074497s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.218035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.083211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.056864s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.190365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.083449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.111800s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.213546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.137879s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.042849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.123836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.254844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.098339s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.134499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.253407s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.135962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_servicewait_timeouts [0.220306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.167091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.327994s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.076201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.185322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.103389s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.077938s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.060455s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.185475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.085830s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.240467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.324329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.196279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.353188s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.128203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.144126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.208273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.135812s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task [0.097035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.264587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked [0.103498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.704349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.229299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.180689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.109339s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.173248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_ok [0.085615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_with_discovery [0.067036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.405683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_wrong_state [0.147021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node [0.050285s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.035408s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.194908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.163456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.094723s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.204056s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.138836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.190336s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.173016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver [0.127098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.200501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.159268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled [0.125182s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.295553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.094502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.092929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.155163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.120219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.124056s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.135713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.161125s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.062567s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.145785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.057058s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.092759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.100714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.099431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_maintenance [0.093819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.110415s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.184219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.186444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.106744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.145855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.198501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.205948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_state_set_by_driver [0.465345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.234278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.117170s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.219972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.141585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.171822s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.260828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.209175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.248273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.209257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.133138s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.185754s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [0.936282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either d irectly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or vi a inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.185456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.710073s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.290460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.162389s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.177554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.127757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [0.122518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.147719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_remove_vif_failed [0.102403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.123535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue [0.154253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.109797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.193233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.092630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.083947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.092106s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.093696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.096402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort [0.277409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.170213s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.538964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_get_node_with_token [0.107893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.055002s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.062868s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.046942s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.141512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.065724s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.057750s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.146855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.067217s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.042719s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_locked [0.067817s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.076833s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_set [0.091585s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.053585s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.064272s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.073248s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.087766s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.062412s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.065542s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.099913s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.068652s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.074161s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.053233s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.095164s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.103925s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.122005s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.119265s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.087511s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass [0.350612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.058571s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.100672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.195563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.136078s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass [0.171825s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.122900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management [0.076848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days [0.141943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.074400s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work [0.090659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.046704s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.034650s] ... ok {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.045877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor [0.104222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.050491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.069357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.045427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.042004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.044893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.094081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.039062s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.065603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.096502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.065076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.058739s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.059237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.084027s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.062055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.073450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.075002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.070829s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.057693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.056100s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.086553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.098474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.150835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.048341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.037279s] ... ok {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.065552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.059048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.070167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach [0.097865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.069161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.096695s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.068361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.098024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.086136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.112128s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.092175s] ... ok {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_http [0.144043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_local [0.202176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled [0.574785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media [0.124630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.120588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.227410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_prepare [0.120844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_one_worker [0.133288s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.139187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.137022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.444887s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.149349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.050822s] ... ok {2} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.055253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__sensors_conductor [0.138642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.050892s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.070591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.134121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing [0.061798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.094183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps [0.106496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.063168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.085485s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.115214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.071928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail [0.066150s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.059984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.055219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.113879s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.065605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.079374s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.055188s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.042426s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted [0.084735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.054152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.060861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step [0.119852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.069595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.046620s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.045866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.046142s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.051167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.055039s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.044292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.059591s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.061412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.040407s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.046638s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.072614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.048129s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.041355s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.101491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.062901s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target [0.087934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.076979s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.057784s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.091751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.061708s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.089734s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.084899s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.052293s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.141651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.066171s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.056411s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.125761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.086141s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.083191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.084656s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.092987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.067929s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.062452s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.090425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.061335s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.115224s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.048701s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.047143s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.088692s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.060754s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.091456s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.063919s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.064159s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.060396s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.092701s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.101450s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.084669s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.568713s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.089076s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.049252s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.052876s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.072450s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits [0.053432s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.090948s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.043733s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.047828s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.072123s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.054220s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.046352s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.086010s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.053711s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.057823s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode [0.055493s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.077851s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.046185s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot [0.043916s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.075301s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.043205s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.048387s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.060051s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.041478s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_service [0.040441s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.039240s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.052255s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.061929s] ... ok {2} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token [0.039456s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.054126s] ... ok {2} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.028372s] ... ok {2} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.035446s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.055317s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.044133s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty [0.060524s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.046557s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated [0.062111s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.054497s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.055485s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.045234s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.053211s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.044330s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive [0.047781s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.043861s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.052109s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.049171s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.059602s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.041884s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.116513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_service [0.040485s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.091405s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.075631s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.054529s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.063057s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.060982s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.040977s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.156711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.040321s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.033871s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.021472s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.020371s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state [0.020121s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.023360s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token [0.024003s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.032257s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.022486s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.027556s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.021336s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.022349s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.025865s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.037545s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.029416s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.032019s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.023821s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.030479s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.021318s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token [0.021132s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.021215s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.019834s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call [0.037899s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception [0.043531s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch [0.045037s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled [0.049840s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled [0.064037s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled [0.034342s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.850575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast [0.019894s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error [0.023407s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.022247s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.026338s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.049830s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.044830s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.053975s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.044101s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.288117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.065443s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.041712s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.130130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.048339s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.058807s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.040408s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.037895s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.162408s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state [0.051247s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.052311s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_disable_power_off [0.086225s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.053130s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.046984s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.044904s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.144445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.065727s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.041714s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.058276s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.221603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.062080s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.155330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.115855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.145700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.537142s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.140192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.069543s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.058506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.043502s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.067018s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_already [0.061293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.132134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.076875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.050900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.064214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.034721s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.029358s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.036259s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.032584s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.029776s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.038971s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.052575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.072234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.070977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.055312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.044223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.042012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.062608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.036273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.073496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_reserved_options [0.036852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.056985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.046522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test__get_service_steps [0.068219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test_set_node_service_steps [0.054094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.048205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_on [0.057318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_reboot [0.055321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.017175s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.019260s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.016983s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.035641s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.032761s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.039985s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.050551s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.037388s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.032910s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.029526s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.025738s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.031525s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.036039s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.029127s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.035864s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.067292s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.039766s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.064571s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout [0.033175s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout_handler_call [0.030613s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked [2.110180s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.028405s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.038418s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.039533s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.058278s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.085683s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.089901s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent [0.402183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent_child_remains [0.235282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token [0.090387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.109537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.581169s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.116629s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.090145s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.081093s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.086390s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.042889s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.065086s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.062567s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.064191s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.031958s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.037896s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.040758s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.075084s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.036716s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.030429s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.035112s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_no_worker [0.052047s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_other_error [0.029208s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.040855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false [0.033914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.058497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.042147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.046893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_inspected_no_heartbeat [0.037583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.037608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.043015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.047191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.049233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info [0.033792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.050893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.027515s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.020937s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none [0.020944s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.046676s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.020681s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.027386s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps [0.034244s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip [0.040112s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.040177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.033822s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.041546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.041522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception [0.044965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.029860s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.073806s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop [0.093253s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.031902s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked [2.119016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.230870s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.047573s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.042191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.217901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default [0.056416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.093562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_parent_off [0.217334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.097261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.077264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.151289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.101378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception [0.130628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_with_parent [0.229710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.141738s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.185068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot_with_disable_power_off [0.101226s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [0.260795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.066743s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.079052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.232788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.193295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev109/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.330677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conf.test_types.ExplicitAbsolutePath.test_explicit_absolute_path [0.040445s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestConsoleContainerFactory.test_factory [0.032465s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.104693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_name [0.040592s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_path [0.038508s] ... ok {2} ironic.tests.unit.conductor.test_utils.ServiceUtilsTestCase.test_wipe_service_internal_info [0.060112s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__host_port [0.035622s] ... ok {2} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change [0.030835s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__reload [0.019478s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__start [0.018205s] ... ok {2} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing [0.023449s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__stop [0.035570s] ... ok {2} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new [0.039659s] ... ok {2} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.027158s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__unit_name [0.041119s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.023433s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__write_container_file [0.020074s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_delete_container_file [0.018602s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.026345s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_start_stop_container [0.019061s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.032211s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_stop_all_containers [0.031460s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.017648s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_fail [0.016978s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.024441s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_ok [0.022841s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_priority [0.021096s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.027155s] ... ok {2} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.018788s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_ok [0.022986s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_unknown [0.015615s] ... ok {1} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db [0.064362s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_err [0.091238s] ... ok {1} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db_instance_not_found [0.075736s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_ok [0.123208s] ... ok {2} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.045187s] ... ok {2} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.035977s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.043714s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.023322s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.023595s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.052066s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.026581s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.039339s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.033538s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.021653s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.044274s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.025113s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.023555s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.035557s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.022428s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.050930s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.311215s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.048147s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.016901s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.017291s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.027999s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.026261s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.041319s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.029691s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.037800s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.046980s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.020694s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.039156s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.030662s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.028904s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.050852s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.035481s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.037167s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.036667s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.052119s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.030786s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.334688s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.021931s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.035955s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.064356s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.050866s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.196543s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.037259s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.034291s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.199246s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.023323s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.377646s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.129009s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.259294s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.024913s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.026686s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.048056s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.033514s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.034375s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.041606s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.189360s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.074721s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.061790s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.036942s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.043069s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.196081s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.021848s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.041633s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.028940s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count [0.035836s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.026726s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.033885s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.031806s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.029591s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.050633s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.046458s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.030611s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.029883s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.029894s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.022646s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.023402s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.043234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.031270s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.047500s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.029635s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.032668s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.035632s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.023587s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.039266s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.025652s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.031903s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.044917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.031115s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.039944s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.049879s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.035365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.044186s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_twice [0.039193s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.036104s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.059469s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.043592s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.044912s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.038769s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.036162s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.021502s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.024956s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.026655s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.043962s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.024882s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.039766s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.040756s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.050801s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.055243s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.029671s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.051638s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.031546s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.035950s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.022288s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.029878s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.032227s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.037284s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.031834s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.029641s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.055151s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.025201s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspecting [0.029252s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.025622s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.035007s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.040168s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.035468s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.056852s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.028582s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.028116s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.023596s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.035410s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.023585s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.036558s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.274313s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.020874s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.024670s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.035518s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.023391s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.032616s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_with_description [0.028114s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.023678s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.036943s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner [0.031092s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match [0.024340s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.026034s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match [0.022252s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.035605s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.034875s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.025021s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.035994s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner [0.046478s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.035786s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.030251s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.038391s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.029554s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.022284s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.024637s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.033245s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.031020s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.025888s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.037161s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.041645s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.043753s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.025813s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.024736s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.023646s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.062411s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.028488s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.033528s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries [1.307639s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.057335s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.023602s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create [0.021047s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_name [0.027543s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_uuid [0.033330s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_invalid_step_no_interface [0.023022s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_no_steps [0.035063s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_destroy [0.025832s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_id [0.038906s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_name [0.026667s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_uuid [0.023281s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list [0.036831s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names [0.038127s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names_no_match [0.031603s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_sorted [0.063442s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_duplicate_name [0.061549s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_extra [0.063378s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_name [0.128345s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_not_found [0.021212s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_add [0.032115s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_remove_all [0.040323s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace [0.032100s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace_args [0.026181s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_uuid_not_allowed [0.020554s] ... ok {1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.079586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.040949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.052264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.031410s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.032253s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.051704s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.054673s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.097171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries_without_log_mock [1.626611s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.068107s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.115971s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.464406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.092426s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.101367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.068604s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.093874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.070993s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.107780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.077250s] ... ok {2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.067353s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.089224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.083518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.116529s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.096527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.149289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.143825s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.086121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.096487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.647014s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.040155s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.145367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.101253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.050577s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.119105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.054781s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.050345s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.049005s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.135278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.068951s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.038614s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.172970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.090760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.099164s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.119906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.104441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.123242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.153138s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.110229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.101720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.057837s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.103475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method [0.135177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.114166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.133295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.098977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers [0.093875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [0.083338s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.098833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.105418s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.106070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.111837s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.131769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.052369s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.087388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.053309s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.075515s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.100876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.066710s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.040761s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.106453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.035927s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.026693s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.028892s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.089977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.021979s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.061790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.100953s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.070413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.054286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.126254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.073220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.063684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.132131s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.057474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.056939s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.110746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.061776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.038649s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.048947s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.138410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.115748s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.159432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.098866s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.066343s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.091662s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.053602s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.059524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.086996s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.044362s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.084094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.058476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.077909s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.054489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.035922s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.094769s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.032256s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.050976s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.058767s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.042788s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.089346s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.027593s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.038988s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue [0.053014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.111850s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.048154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.075850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.025857s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.042212s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.040562s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.027202s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.084798s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.056251s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.072907s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload [0.462930s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.057331s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.045998s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.060547s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.065196s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.070536s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.367167s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.082990s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.057524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.070834s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac [0.052419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.037008s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.064313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.069559s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.055987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.038498s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.043113s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.038018s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.049931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.042615s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.029109s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.045913s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.031157s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.033150s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.091598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.043855s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.032259s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.102371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.032365s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.037894s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.039133s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.049979s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.051040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.047886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.154678s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.044113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.045789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.082482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.056679s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.223504s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.048381s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.030214s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.039055s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.032709s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.025101s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.023030s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.056618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.075936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.081189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.043926s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.028390s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.053234s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration [0.053373s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.044041s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.634918s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.047814s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.024574s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.023045s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.041226s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.023100s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.045507s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.207294s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc [0.044365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.048031s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates [0.045934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.054777s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.054967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.092959s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [0.063337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.043595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.104551s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.056791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.048493s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.083854s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.065477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.083670s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.064591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.037198s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.048735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.136556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.038764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.065765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.130233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.066034s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.041678s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.139008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.130126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase [0.288793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.115390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.058873s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.037243s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.045219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.051240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.148756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.035798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.048266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean [0.128360s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.063854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.051756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.131259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.077468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.042254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.063021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.118980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [0.104309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.129253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.093312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.058136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.137862s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_tlv_value_hex_format [0.042706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.041381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.125961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [0.065204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_id_subtype_mac [0.086611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.170677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_local_link_connection_already_exists [0.082599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_valid_data [0.047332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_memory.MemoryTestCase.test_memory [0.050051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.158948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_added [0.092210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl [0.139108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_all [0.111639s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_present [0.084444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.135273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.139635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.044100s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.141458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_cleanup_failed [0.074437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.130315s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_success [0.068156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_boot_clean_up_failed [0.057346s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed [0.048192s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.125760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_disable_power_off [0.040491s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off [0.045018s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off_on_fast_track [0.029815s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_network_clean_up_failed [0.039580s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.128003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged [0.025603s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged_force_power_off [0.040125s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.049310s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr [0.134972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.040371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.074324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component [0.114897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.066483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.049456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.044108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.131322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.038759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.088316s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.052955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.180650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.100567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.106999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.047177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.055291s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.115385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.046319s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.038330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.050723s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode [0.106904s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.025435s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.023125s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.029759s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.095049s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.037889s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.033765s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.023539s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.025069s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.105973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.272795s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info [0.054159s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.045416s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.054488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.050190s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.082459s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.073077s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.688640s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.084295s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.058180s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.112491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.058069s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.083940s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.131621s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.136793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.131735s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.070919s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.113541s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.059873s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.106139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.123041s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.120390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.126659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.100803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.106636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.108077s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.105089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.109036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.093513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.056865s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.111483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.094963s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.129304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.088232s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.112015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.093002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.088765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.099242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.067101s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update [0.093294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated [0.068991s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.089779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.073249s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.062436s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.110313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.053417s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.096063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.092373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.072813s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.099621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.087633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.090015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.049853s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.032572s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode [0.108020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.065152s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.099712s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail [0.136493s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.077565s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.136257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.094485s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.086333s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.129218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.071781s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.119091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.079332s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.074221s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.124099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.080682s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.193490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [0.222361s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.214761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [0.220299s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [0.129077s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.186189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.145837s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.188928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.147524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.194311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.183993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.225514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.174872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.239637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.247537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.193217s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network [0.178020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.173144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.231838s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.183829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network [0.149430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.173378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node [0.283218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.195175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.161060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.182176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.156054s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.228694s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data [0.220451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.260545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.157706s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.145718s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.106242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length [0.089216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.092052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.632495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.151953s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.083144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.109143s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean [0.590409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.130337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.086506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.111602s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.121858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection [0.120524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.114278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc [0.122726s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.126840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.091209s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy [0.133297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.099300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.114068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.114577s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.105919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.107834s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.065611s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.066574s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [0.153306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_ilo6_redirect [0.066685s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.077534s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.141187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail_servicing [0.145163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.138338s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_no_targets [0.069600s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_targets [0.046744s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.033003s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.031510s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.033539s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.059931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.068988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [0.058583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.055940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.088370s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.063981s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last_service [0.081615s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.055456s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_create_all_components [0.215438s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings [0.103745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings_service [0.065850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_get_properties [0.036860s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.083833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings_service [0.055153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.046658s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.088017s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.601427s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.242013s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.132988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings_service [0.143790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.103538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.114045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.069678s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.076730s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.072757s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.071133s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.064234s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.085581s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.067723s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.075753s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.063364s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.078929s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.048016s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.079674s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.072101s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http [0.049454s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.063386s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.049557s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.043971s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift [0.069424s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.035980s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.046080s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.031593s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.058659s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.043333s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.067257s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.047557s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.080074s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.060107s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.064926s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.060565s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.043550s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.043844s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.027336s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.055263s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.097864s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.158376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [0.138451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.090396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.107692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.095013s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.097394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.116796s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.119313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.087082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.054559s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [0.041611s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.047903s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.044419s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.305455s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.039997s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.038734s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.043559s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.076511s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.037181s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.061569s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.033004s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.026840s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_attach_virtual_media [0.065327s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.035375s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.030997s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.052236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.051840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor [0.068402s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.045413s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.042123s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state [0.099324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.061490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.053214s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.081737s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.097205s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.066807s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.076411s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.044163s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.052828s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.032291s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.034978s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.053318s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_virtual_media [0.061453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.098464s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.091555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.083079s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.072529s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.042028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.058566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.054928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.048105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.082264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.091992s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.100372s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.188439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.141500s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.063177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [0.082834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.097804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.118178s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.382565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.095243s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.121476s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.082402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state [0.092089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.047542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.057025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.042484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.043294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.058383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.052073s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.056844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware [0.078300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.046103s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage [0.050107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.052944s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.036958s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.069820s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.068477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.049616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.047098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.065847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.042818s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.072397s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.089889s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.087205s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.161531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.194469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off [0.095592s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off_with_disable_power_off [0.047197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on [0.046611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on_with_disable_power_off [0.065347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [0.068933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [0.049993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.349691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.051738s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate [0.043999s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.074749s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.074228s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session [0.099551s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.133912s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [0.075579s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.065171s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.096541s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.103837s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.067514s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.121484s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.397801s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.025044s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error [0.030573s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection [0.037115s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection_error [0.025306s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.021954s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.023907s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service [0.039424s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error [0.025566s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.023020s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.021281s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.028581s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.042253s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.024730s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.025108s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.026555s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.036969s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.032607s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.022987s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.024530s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.032264s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.039846s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.029551s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.026079s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.025827s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.072200s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.079829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.082206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.055295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_disable_power_off [0.067462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.060972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.073696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.064022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.054744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.065416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.096085s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.078667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.049006s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.101688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_disable_power_off [0.076391s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.090069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.062945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.072667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up [0.062537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up_disable_power_off [0.132408s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy [0.142205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track [0.073021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false [0.093410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot [0.073747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.113773s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties [0.061249s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.091792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_disable_power_off [0.057242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track [0.094272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate [0.062651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps [0.076178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy [0.083083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy [0.118117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface [0.106725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps [0.114611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.034981s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default [0.039441s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.030131s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set [0.035513s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.022558s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.020244s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.027249s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.018953s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.027067s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure [0.343046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception [0.049633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested [0.051989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported [0.043922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure [0.037592s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception [0.045781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested [0.050471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported [0.064007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.037576s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.050944s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.039054s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.035562s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.079430s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_polling_if_not_set [0.086417s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.076657s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.048531s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path [0.024425s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.023100s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.027591s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.038014s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.031460s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.028726s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.064550s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.038040s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.027080s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.030387s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.027637s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.029133s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.047785s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.040249s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.028680s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.028900s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.035421s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.027706s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.025009s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.045461s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.044829s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.027004s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.028201s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.077500s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source [0.045875s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.071832s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_boot_mode.BootModeTestCase.test_boot_mode [0.149692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id [0.128020s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.104674s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_physical_network.PhysicalNetworkTestCase.test_physical_network [0.243593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.094077s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.066626s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot [0.045845s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.126610s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.061799s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.083734s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_duplicates [0.153233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.055815s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.083965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.063180s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.061058s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [0.088625s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.052151s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.062605s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.087488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.037933s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.044985s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_serials [0.084548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.045701s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.056007s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.097634s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.043412s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.049447s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_found [0.108495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.052000s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.042997s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.085271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.046397s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.067970s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.075925s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.074780s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img [0.058581s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img_not_cached [0.068870s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.069819s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.054673s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.072252s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.058331s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_properties [0.037200s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.045774s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.032293s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip [0.044808s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip_as_url [0.039278s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance [0.081377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.062667s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.039415s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance [0.076462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host [0.050271s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.099780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host_in_url [0.077519s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.114074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.102448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.068878s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_invalid_json [0.048937s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.119554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_200 [0.054854s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_500 [0.053097s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.101614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.062121s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.089276s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.052084s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.082303s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.049989s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.044506s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.063162s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance [0.115601s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_fail [0.093023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active [0.140530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_success [0.157271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.078505s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.230986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.086578s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.095665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.089933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_match [0.049124s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.058247s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success [0.056685s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios [0.408145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success_out_range [0.052447s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk [0.118430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.083390s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk [0.071286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.087999s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios [0.081874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg [0.067951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.129459s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback [0.075787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.144185s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk [0.088910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.082391s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.108465s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.073540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.102894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.242487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.085803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.150481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.131822s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.071956s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.088745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.086595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.645506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.093366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.078885s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.179712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.155361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.161052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.210940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.139308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.086482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.250246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.370566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.249285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.134374s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.116265s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.311395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.099969s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.118884s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.231631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.096053s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.117682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.263585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.140794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot [0.101637s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.253568s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.125030s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso [0.166643s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.196849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.138422s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_http_boot_enabled [0.097928s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.271667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.302438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.111450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.194249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.126524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk [0.841266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.101116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.193552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.135208s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.142979s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.190819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy [0.099299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.098234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.148530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error [0.057025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.099349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.173637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare [0.089406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active [0.059745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning [0.047587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.179809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_reboot_to_instance [0.111438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.122224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.056186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.101118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.078253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.078483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.048431s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.139377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance [0.094364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.097683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active [0.094651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.110739s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart [0.125365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.100052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.103215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios [0.204035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.090821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.102411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_lenovo [0.118974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.107996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.257841s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.194633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.106927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.090676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.203064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios [0.085765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.114768s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.071139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.214828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.072705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.075755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.199508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios [0.085481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.132559s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.143535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.129836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.085775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.238734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.117350s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.122156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.094428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.104570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.088306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.077924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.075106s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.159166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.047453s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.046601s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.095816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.035928s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.057422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.054519s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.052924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.051120s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection [0.049419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.051293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.057813s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.077430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set [0.045072s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.066826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id [0.075815s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot [0.036345s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.089494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local [0.052833s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.048107s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.095500s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_http_boot_not_enabled [0.055201s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.054887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.123633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.284724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.155737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.055621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.045015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.022582s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.016329s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.043681s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.022202s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.026371s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.022231s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.016887s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.042517s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.026170s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.016863s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.017437s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.017126s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.395358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.016349s] ... ok {2} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.022239s] ... ok {2} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.021842s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.070895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.024852s] ... ok {2} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.017332s] ... ok {2} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.050485s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.101842s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.051035s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.053121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.049551s] ... ok {2} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.024301s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.052843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.058982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.069127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid [0.045077s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces [0.034689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.034317s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.100763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.037191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.038009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.017997s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.019036s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.028041s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.020567s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.157236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.021092s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.019057s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.026875s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.021398s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.092177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.031116s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.038476s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.073460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.024312s] ... ok {2} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.018945s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.051854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_create [0.065565s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.102082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.050604s] ... ok {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.023891s] ... ok {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.020444s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.072978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.060229s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.061874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.047951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.103269s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.056757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.068477s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.066007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.052004s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.040176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.047154s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.059555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.063936s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.040805s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.044941s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.048172s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.043543s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.045146s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.074325s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.080386s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.054794s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.048688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.073176s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.083767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.044119s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.067714s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.045242s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.057144s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.038089s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.056848s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.056974s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.055141s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.055668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.065996s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.045662s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.052221s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.020047s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.056247s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.029058s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.021059s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.024782s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.085680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing [0.027354s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set [0.027381s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.034334s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.038799s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.109254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.053240s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.047652s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.096202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.041626s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.054132s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.110620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.053411s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.020973s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.031656s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.029734s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.024380s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.022330s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.020578s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.177082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.038433s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.041718s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.020871s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.019933s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.028202s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.149942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.025889s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.029210s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.026371s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.025118s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_missing [0.027748s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.141631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.157283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.166132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.166995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.591803s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.058651s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.051379s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.216397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing [0.085818s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.050820s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.062150s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.204274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.044325s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.057551s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.045842s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.174765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.088798s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.070170s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.140193s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.084329s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.076086s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.132605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.063945s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.044228s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.121807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.054737s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.062420s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.057693s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.053946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.049709s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.041762s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.044224s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.051312s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.052607s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.045225s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.049203s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.039559s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.055445s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing [0.047550s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.052504s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing [0.052275s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.048010s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.658732s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.059225s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.062373s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.069172s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.152382s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.075551s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.043974s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.044361s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.152083s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.058598s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.077861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create [0.054687s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.060368s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.116205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get [0.051712s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.040649s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.095616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.055479s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list [0.042181s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.041128s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.134430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.048186s] ... ok {2} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_create [0.056343s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.094553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.051626s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.048478s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.099367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.038826s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.075547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.049448s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.063486s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.081833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.050589s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.053579s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.038917s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.046330s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.033081s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.110685s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.049490s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.052392s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.045353s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.072361s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.060853s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.071304s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.062200s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.051653s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.098698s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.049892s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.040881s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.081405s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.048777s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.046857s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.080877s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.041903s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.073566s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.050887s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.057819s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.039882s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.038213s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.035043s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.050763s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.079437s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.068884s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.050006s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.055162s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.044987s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.036602s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.036053s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.643708s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.039924s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.052350s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.036473s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.135637s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.044636s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.038319s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.034596s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.106444s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.041198s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.039711s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.033565s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.093170s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.041485s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.047556s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.080164s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.040340s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.040537s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.104589s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.042018s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.071068s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.099916s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.122080s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.109288s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.110702s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.115031s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.701113s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.090226s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.043074s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.039208s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.103405s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.039138s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.052114s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.099304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.054151s] ... ok {2} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.045718s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.088733s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.022953s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.030209s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.025814s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 [0.085990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.044253s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean [0.091880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.087964s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy [0.078797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.076095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.044805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration [0.093175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.060534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.102734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.082186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.108604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.066517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.089929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.079958s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.063744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps [0.052620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot [0.060166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_boot_loader_install_fail [0.104424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.043338s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.048273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.041787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_lenovo [0.055828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid [0.068732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid_whole_disk [0.107824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_non_software_raid [0.038894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid [0.046501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_bios [0.049779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_bios [0.062560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_uefi [0.064042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.077953s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.062218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_set_boot_device_fail [0.464153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_uefi [0.040762s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image [0.037594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image_bios [0.039330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_with_prep [0.052604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot [0.058913s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_configure_fails [0.053628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_localboot_prep_partition [0.054545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.044520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail [0.049362s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.079341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.035839s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.039722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 [0.060028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.056072s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.052125s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image [0.042864s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.022948s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.032047s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.021658s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.025465s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http [0.035876s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.032582s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.031329s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue [0.087516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result [0.071542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc [0.092692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result [0.079496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.091308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning [0.104400s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.154119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.123823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.118921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail [0.113849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.077318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.074709s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command [0.058565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot [0.079278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running [0.047344s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown [0.077335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook [0.068717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.059956s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning [0.065868s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing [0.065668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_after_reboot [0.151483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_reboot [0.139780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_running [0.090495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.108822s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.138845s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.115474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [0.104112s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.104008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.095292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.095954s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.108665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.136848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.254494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.385197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.090628s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.123935s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.056508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.377374s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.120750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.158020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.068012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.073090s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean [0.096725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.132830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.099296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation [0.055931s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.023692s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.031737s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.019038s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.018462s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.030427s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.044680s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.062253s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.042597s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.043536s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.043465s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.044255s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.040073s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.037193s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll [0.050923s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify [0.027339s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.027946s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable [0.018740s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.019222s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal [0.029477s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.020338s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.019142s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.028418s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.018415s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.016991s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.041682s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.021751s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.023679s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.018578s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.016958s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.055508s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.021250s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.025628s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries [0.018892s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.018348s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify [0.021182s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.024321s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.035574s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.029397s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.043238s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.032012s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.034304s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.033893s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.024117s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.024434s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.070499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state [0.041249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance [0.049243s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout [0.061445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate [0.033502s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.024911s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.032458s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.066535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.051017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.044494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.019259s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.017136s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.020464s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.016976s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.017014s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.017906s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.059012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.065680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.071017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.057385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.071095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.071816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.080367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.102639s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.066781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.086128s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_part_img_checked [0.057147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.050508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_local_download [0.045524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download [0.071383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download_rebuild [0.068084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.057533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.440879s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.054775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.108376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.076912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.056527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.077987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.123342s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.076753s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.053105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.050337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.057911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_md5_not_permitted [0.063004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.097104s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_image [0.104645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha256 [0.163215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha512 [0.151262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.089918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.041912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.060766s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.068469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.049142s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.024620s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.023232s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.032747s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.026248s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.023037s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.025476s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.023041s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.038345s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.050310s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test__download_image_iso [0.023720s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test_fetch_image_iso [0.019069s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param [0.033000s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.023060s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.043642s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.042795s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.034728s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.076241s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.046919s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.063090s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.056284s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.055629s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.047619s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.063830s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.041821s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.045493s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.039968s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.057032s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.084071s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.087926s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.077622s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.071182s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.043332s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.034893s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.042061s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.034408s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.541459s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.072435s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.067515s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.066447s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.059481s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.039545s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.036010s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.036833s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.034573s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.049074s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.045723s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.038634s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.047860s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.047242s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.044877s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.037306s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.051472s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.084502s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.040934s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.038373s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.054278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.033555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.034221s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.035913s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.041877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.039069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.046954s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.039756s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.056879s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.041288s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.030642s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.054522s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.061057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.064369s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port [0.062363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port [0.049347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.062502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.060517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_http_boot_enabled [0.065365s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk [0.091725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.096655s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.092754s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.020308s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.021382s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.027246s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.058083s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.022641s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.019036s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.017449s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.018977s] ... ok {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy [0.213674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.218621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port [0.285399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.038145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.077297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.068790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare [0.065876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active [0.043532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning [0.049649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk [0.108190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing [0.296809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning [0.053172s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate [0.083412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.046335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch [0.047262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [0.046486s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.023983s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.023434s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.021157s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.022592s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.026326s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.023097s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.021691s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.021432s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.020815s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.021416s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.026978s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.062062s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.028454s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.026459s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.020389s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.028434s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.021711s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.027511s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.027218s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.049603s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.026485s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.020690s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.022188s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.025226s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.025336s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.025482s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.029054s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.021845s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.022097s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.022557s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.023959s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.024108s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.019705s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.024244s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.026435s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.021888s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.019866s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.020430s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.023110s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.022674s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.027945s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.022419s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.027020s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.020987s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.023678s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.028992s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.022268s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.020429s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.027952s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.019671s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.024346s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.042039s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.028489s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.021444s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.019898s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.028412s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.022015s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.034599s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.026976s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [0.023175s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [0.032803s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.021371s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.031541s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.023433s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.022762s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [0.021297s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [0.021315s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.021512s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.022150s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [0.021995s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.021300s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.023238s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [0.023556s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [0.022533s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [0.022251s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.028519s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.022829s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [0.021488s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [0.020412s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [0.020857s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.020335s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.033157s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [0.025948s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.020222s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.019165s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.019825s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.019696s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects [0.226824s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.020325s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.036057s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.034945s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.020567s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.021955s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.020313s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.019956s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.031285s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.022363s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.019968s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.041683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.049896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.036304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.038730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.039398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.035341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.035025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.039046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.036364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.065591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off [0.070746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.055564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.034094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on [0.033780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.049061s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.059814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.045633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.019721s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.019829s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.027419s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.023713s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.023733s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.024223s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.018986s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.023263s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.021209s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.018338s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.026865s] ... ok {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.040469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector [0.050385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid [0.054443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.053740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.041990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.041235s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.038055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_vendor [0.053235s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.038917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.041212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.027072s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.021743s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.038889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.040002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.048283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.059222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append [0.049273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.052660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.023334s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.021844s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.031448s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.023364s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.022821s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.040678s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.042696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.055163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.043127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability [0.023078s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.022144s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.051823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string [0.023500s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.025306s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.027092s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.040229s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.026847s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.024514s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.020552s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.019970s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.020731s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.021716s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.025284s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.256917s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.020480s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.033162s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.020841s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.021046s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.021454s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.020838s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.034300s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.030404s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.026412s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.020289s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.064154s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.031566s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.024493s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.023847s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.024748s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.023548s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.020287s] ... ok {1} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.021183s] ... ok {1} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.017599s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.017634s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.016267s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.029986s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.037841s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.031177s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.017700s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.018386s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.025032s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.028512s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.018432s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected [0.015764s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.023246s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.023307s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.025264s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.016854s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.022137s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.026619s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.022036s] ... ok {1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.019590s] ... ok {1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.017036s] ... ok {1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.017849s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.023303s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.020838s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.018622s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.021054s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.026999s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.027388s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.025676s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.022456s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.022250s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.020446s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.024772s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.055518s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.038533s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.053917s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.045885s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.027330s] ... ok {1} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.031173s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.016846s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.020042s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.017984s] ... ok ====== Totals ====== Ran: 10056 tests in 389.6630 sec. - Passed: 10011 - Skipped: 45 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 Sum of execute time for each test: 1201.9795 sec. ============== Worker Balance ============== - Worker 0 (2127 tests) => 0:03:51.565171 - Worker 1 (3038 tests) => 0:06:29.155751 - Worker 2 (2836 tests) => 0:06:02.206663 - Worker 3 (2055 tests) => 0:03:59.799542 Test id Runtime (s) ----------------------------------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on 4.097 ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth 3.596 ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set 3.371 ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth 3.364 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout 3.118 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout 3.078 ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth 2.845 ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state 2.658 ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked 2.119 ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked 2.110 py312: OK (414.83 seconds) congratulations :) (414.89 seconds) + RPM_EC=0 ++ jobs -p + exit 0 Processing files: openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.noarch Provides: openstack-ironic = 1:29.1.0-0.20250519190656.a5bfbe7.el10 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Requires: /usr/bin/python3 OrderWithRequires: systemd systemd systemd Processing files: openstack-ironic-common-29.1.0-0.20250519190656.a5bfbe7.el10.noarch warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic_tests.egg_info Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.prbv2s + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/doc/openstack-ironic-common + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/doc/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev109/README.rst /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/doc/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev109/etc/ironic/policy.yaml.sample /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/doc/openstack-ironic-common + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.21XAjl + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/licenses/openstack-ironic-common + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/licenses/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev109/LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/licenses/openstack-ironic-common + RPM_EC=0 ++ jobs -p + exit 0 Provides: config(openstack-ironic-common) = 1:29.1.0-0.20250519190656.a5bfbe7.el10 openstack-ironic-common = 1:29.1.0-0.20250519190656.a5bfbe7.el10 python3.12dist(ironic) = 29.1~~dev109 python3dist(ironic) = 29.1~~dev109 Requires(interp): /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(pre): /bin/sh shadow-utils Requires: /usr/bin/bash /usr/bin/python3 /usr/bin/sh python(abi) = 3.12 python3.12dist(alembic) >= 1.4.2 python3.12dist(automaton) >= 1.9 python3.12dist(bcrypt) >= 3.1.3 python3.12dist(construct) >= 2.9.39 python3.12dist(eventlet) >= 0.30.1 python3.12dist(futurist) >= 1.2 python3.12dist(jinja2) >= 3 python3.12dist(jsonpatch) >= 1.16 python3.12dist(jsonschema) >= 4 python3.12dist(keystoneauth1) >= 4.2 python3.12dist(keystonemiddleware) >= 9.5 python3.12dist(microversion-parse) >= 1.0.1 python3.12dist(netaddr) python3.12dist(openstacksdk) >= 0.99 python3.12dist(os-service-types) >= 1.7 python3.12dist(os-traits) >= 0.4 python3.12dist(oslo-concurrency) >= 4.2 python3.12dist(oslo-config) >= 6.8 python3.12dist(oslo-context) >= 2.22 python3.12dist(oslo-db) >= 9.1 python3.12dist(oslo-log) >= 4.3 python3.12dist(oslo-messaging) >= 14.1 python3.12dist(oslo-middleware) >= 3.31 python3.12dist(oslo-policy) >= 4.5 python3.12dist(oslo-rootwrap) >= 5.8 python3.12dist(oslo-serialization) >= 2.25 python3.12dist(oslo-service) >= 1.24 python3.12dist(oslo-upgradecheck) >= 1.3 python3.12dist(oslo-utils) >= 8 python3.12dist(oslo-versionedobjects) >= 1.31.2 python3.12dist(osprofiler) >= 1.5 python3.12dist(pbr) >= 6 python3.12dist(pecan) >= 1 python3.12dist(psutil) >= 3.2.2 python3.12dist(pycdlib) >= 1.11 python3.12dist(pyyaml) python3.12dist(requests) >= 2.18 python3.12dist(rfc3986) >= 1.2 python3.12dist(sqlalchemy) >= 1.4 python3.12dist(stevedore) >= 1.29 python3.12dist(sushy) >= 4.8 python3.12dist(tenacity) >= 6.3.1 python3.12dist(tooz) >= 2.7 python3.12dist(webob) >= 1.7.1 python3.12dist(websockify) >= 0.9 python3.12dist(zeroconf) >= 0.24 Recommends: group(ironic) ipmitool python3-dracclient >= 5.1.0 python3-proliantutils >= 2.10.0 python3-pyasn1-lextudio >= 1.1.0 python3-pysnmp-lextudio >= 5.0.0 python3-scciclient >= 0.8.0 user(ironic) Suggests: python3-oslo-i18n >= 3.15.3 python3-oslo-reports >= 1.18.0 Processing files: openstack-ironic-api-29.1.0-0.20250519190656.a5bfbe7.el10.noarch Provides: openstack-ironic-api = 1:29.1.0-0.20250519190656.a5bfbe7.el10 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Requires: /usr/bin/python3 OrderWithRequires: systemd systemd systemd Processing files: openstack-ironic-conductor-29.1.0-0.20250519190656.a5bfbe7.el10.noarch Provides: openstack-ironic-conductor = 1:29.1.0-0.20250519190656.a5bfbe7.el10 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Requires: /usr/bin/python3 Recommends: syslinux-nonlinux OrderWithRequires: systemd systemd systemd Processing files: openstack-ironic-novncproxy-29.1.0-0.20250519190656.a5bfbe7.el10.noarch Provides: openstack-ironic-novncproxy = 1:29.1.0-0.20250519190656.a5bfbe7.el10 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Requires: /usr/bin/python3 OrderWithRequires: systemd systemd systemd Processing files: openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250519190656.a5bfbe7.el10.noarch Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.DXgZcd + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev109/LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server + RPM_EC=0 ++ jobs -p + exit 0 Provides: config(openstack-ironic-dnsmasq-tftp-server) = 1:29.1.0-0.20250519190656.a5bfbe7.el10 openstack-ironic-dnsmasq-tftp-server = 1:29.1.0-0.20250519190656.a5bfbe7.el10 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Recommends: group(ironic) Processing files: openstack-ironic-pxe-filter-29.1.0-0.20250519190656.a5bfbe7.el10.noarch Provides: openstack-ironic-pxe-filter = 1:29.1.0-0.20250519190656.a5bfbe7.el10 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Requires: /usr/bin/python3 OrderWithRequires: systemd systemd systemd Processing files: python3-ironic-tests-29.1.0-0.20250519190656.a5bfbe7.el10.noarch Provides: python-ironic-tests = 1:29.1.0-0.20250519190656.a5bfbe7.el10 python3-ironic-tests = 1:29.1.0-0.20250519190656.a5bfbe7.el10 python3.12-ironic-tests = 1:29.1.0-0.20250519190656.a5bfbe7.el10 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.12 Obsoletes: python3.12-ironic-tests < 1:29.1.0-0.20250519190656.a5bfbe7.el10 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.src.rpm Wrote: /builddir/build/RPMS/openstack-ironic-api-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-pxe-filter-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-novncproxy-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-conductor-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-common-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Wrote: /builddir/build/RPMS/python3-ironic-tests-29.1.0-0.20250519190656.a5bfbe7.el10.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.xdR2GG + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev109 + /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.eBZeye + umask 022 + cd /builddir/build/BUILD + rm -rf /builddir/build/BUILD/ironic-29.1.0.dev109-SPECPARTS + rm -rf ironic-29.1.0.dev109 ironic-29.1.0.dev109.gemspec + RPM_EC=0 ++ jobs -p + exit 0 RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing File not found: /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250519190656.a5bfbe7.el10.x86_64/usr/lib/python3.12/site-packages/ironic_tests.egg_info Child return code was: 0