Mock Version: 6.1 Mock Version: 6.1 Mock Version: 6.1 Mock Version: 6.1 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.20250530172959.26ee9b8.el10.src.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 0 Mock Version: 6.1 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.20250530172959.26ee9b8.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.teJQEs + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-29.1.0.dev142 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/ironic-29.1.0.dev142-0.20250530172959.26ee9b8.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-29.1.0.dev142 + rm -rf /builddir/build/BUILD/ironic-29.1.0.dev142-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev142-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.eLQiyD + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + 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.dev142/.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-hardened-ld-errors -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.dev142/.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.dev142/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.QkpW5z + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + 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.dev142/.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-hardened-ld-errors -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.dev142/.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.dev142/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.gjUFI6 + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + 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.dev142/.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-hardened-ld-errors -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.dev142/.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.dev142/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.06 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.6) 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.dev142/ironic-29.1.0.dev142.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.6) 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.20250530172959.26ee9b8.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev142.dist-info/ removed 'ironic-29.1.0.dev142.dist-info/AUTHORS' removed 'ironic-29.1.0.dev142.dist-info/LICENSE' removed 'ironic-29.1.0.dev142.dist-info/METADATA' removed 'ironic-29.1.0.dev142.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev142.dist-info/pbr.json' removed 'ironic-29.1.0.dev142.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev142.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.QrednG + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + 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.dev142/.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-hardened-ld-errors -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.dev142/.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.dev142/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.10 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 6.0.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 satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.6.0) 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.6) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.10.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 17.0.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.7.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.dev142/ironic-29.1.0.dev142.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 6.0.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 satisfied: oslo.rootwrap >=5.8.0 (installed: oslo.rootwrap 7.6.0) 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.6) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystonemiddleware >=9.5.0 (installed: keystonemiddleware 10.10.0) Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.messaging >=14.1.0 (installed: oslo.messaging 17.0.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.7.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.20250530172959.26ee9b8.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev142.dist-info/ removed 'ironic-29.1.0.dev142.dist-info/AUTHORS' removed 'ironic-29.1.0.dev142.dist-info/LICENSE' removed 'ironic-29.1.0.dev142.dist-info/METADATA' removed 'ironic-29.1.0.dev142.dist-info/top_level.txt' removed 'ironic-29.1.0.dev142.dist-info/pbr.json' removed 'ironic-29.1.0.dev142.dist-info/entry_points.txt' removed directory 'ironic-29.1.0.dev142.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.P415N3 + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + 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.dev142/.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-hardened-ld-errors -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.dev142/.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.dev142/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.10 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 6.0.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 satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.6.0) 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.6) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.10.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 17.0.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.7.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.dev142/ironic-29.1.0.dev142.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 6.0.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 satisfied: oslo.rootwrap >=5.8.0 (installed: oslo.rootwrap 7.6.0) 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.6) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystonemiddleware >=9.5.0 (installed: keystonemiddleware 10.10.0) Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.messaging >=14.1.0 (installed: oslo.messaging 17.0.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.7.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.20250530172959.26ee9b8.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev142.dist-info/ removed 'ironic-29.1.0.dev142.dist-info/AUTHORS' removed 'ironic-29.1.0.dev142.dist-info/LICENSE' removed 'ironic-29.1.0.dev142.dist-info/METADATA' removed 'ironic-29.1.0.dev142.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev142.dist-info/pbr.json' removed 'ironic-29.1.0.dev142.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev142.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.WiQu3n + 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-hardened-ld-errors -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.dev142 + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev142/.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-hardened-ld-errors -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.dev142/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-29.1.0.dev142/pyproject-wheeldir Processing /builddir/build/BUILD/ironic-29.1.0.dev142 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.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info writing /builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info/top_level.txt writing pbr to /builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt writing manifest file '/builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/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.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-modern-metadata-z8hejdyi/ironic-29.1.0.dev142.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/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 creating build/lib/ironic/tests/unit 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 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/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 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/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 creating build/lib/ironic/tests/unit/drivers/modules 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/drivers creating build/lib/ironic/drivers/modules 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/inspector 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 copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic 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/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/ibmc copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc 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/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/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/db 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/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/tests/unit/drivers/modules/inspector 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 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 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 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/api 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/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 creating build/lib/ironic/wsgi copying ironic/wsgi/__init__.py -> build/lib/ironic/wsgi 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/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/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/api 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 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 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/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/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/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 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/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/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/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 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 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 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/tests/base.py -> build/lib/ironic/tests copying ironic/tests/__init__.py -> build/lib/ironic/tests 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 copying ironic/tests/unit/console/__init__.py -> build/lib/ironic/tests/unit/console 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/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 creating build/lib/ironic/tests/unit/api/controllers 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/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 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/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/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 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/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 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/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/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 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/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/api/validation copying ironic/api/validation/validators.py -> build/lib/ironic/api/validation copying ironic/api/validation/__init__.py -> build/lib/ironic/api/validation 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/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional 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/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking 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 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/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/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/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/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 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 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/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/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 copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers 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 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/modules/inspector/hooks/known_accelerators.yaml -> build/lib/ironic/drivers/modules/inspector/hooks 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 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 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/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 copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common 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/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 copying ironic/console/container/ironic-console.container.template -> build/lib/ironic/console/container 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 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/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/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 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 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 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/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/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/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/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/wsgi copying build/lib/ironic/wsgi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/wsgi creating 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 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/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 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/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 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/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/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/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/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/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 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/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/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 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/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/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/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 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/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 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/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/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/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/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/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/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 creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers 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/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 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 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/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/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/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/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/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 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/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 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/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/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/inspector 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/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 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/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/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc 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/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/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 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/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 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 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/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 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 running install_data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/etc creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/etc/ironic copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/etc/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/etc/ironic/rootwrap.d/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/share creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/share/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/share/ironic/vnc-container copying tools/vnc-container/README.rst -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/ copying tools/vnc-container/Containerfile -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.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.dev142.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.dev142.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.dev142.data/data/share/ironic/vnc-container/bin creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/drivers creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.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.dev142.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.dev142.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.dev142-py3.12.egg-info running install_scripts Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.data/scripts creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev142.dist-info/WHEEL creating '/builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir/pip-wheel-bjlg4mo0/.tmp-vncdyoxg/ironic-29.1.0.dev142-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.dev142.data/data/etc/ironic/rootwrap.conf' adding 'ironic-29.1.0.dev142.data/data/etc/ironic/rootwrap.d/ironic-utils.filters' adding 'ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/Containerfile' adding 'ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/README.rst' adding 'ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/bin/start-browser-x11vnc.sh' adding 'ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/bin/start-selenium-browser.py' adding 'ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/bin/start-xvfb.sh' adding 'ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/drivers/fake/index.html' adding 'ironic-29.1.0.dev142.data/data/share/ironic/vnc-container/drivers/fake/ironic_mascot_color.png' adding 'ironic-29.1.0.dev142.data/scripts/ironic-api-wsgi' adding 'ironic-29.1.0.dev142.dist-info/AUTHORS' adding 'ironic-29.1.0.dev142.dist-info/LICENSE' adding 'ironic-29.1.0.dev142.dist-info/METADATA' adding 'ironic-29.1.0.dev142.dist-info/WHEEL' adding 'ironic-29.1.0.dev142.dist-info/entry_points.txt' adding 'ironic-29.1.0.dev142.dist-info/pbr.json' adding 'ironic-29.1.0.dev142.dist-info/top_level.txt' adding 'ironic-29.1.0.dev142.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.dev142-py3-none-any.whl size=2258019 sha256=6a224a812827a1a65539f4f3e7cb88abb66cacaa375a20a3468407f91f3fc60e Stored in directory: /builddir/.cache/pip/wheels/ce/09/20/61554dc3ae098ee0c4e1be054ed052697688e8d97fc7af7286 Successfully built ironic + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.yxxrAq + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64 ++ dirname /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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-hardened-ld-errors -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.dev142 ++ xargs basename --multiple ++ ls /builddir/build/BUILD/ironic-29.1.0.dev142/pyproject-wheeldir/ironic-29.1.0.dev142-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=ironic==29.1.0.dev142 + '[' -z ironic==29.1.0.dev142 ']' + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev142/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.dev142/pyproject-wheeldir ironic==29.1.0.dev142 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.dev142/pyproject-wheeldir Processing ./pyproject-wheeldir/ironic-29.1.0.dev142-py3-none-any.whl Installing collected packages: ironic changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-api to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-conductor to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-dbsync to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-novncproxy to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-pxe-filter to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-rootwrap to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-status to 755 Successfully installed ironic-29.1.0.dev142 + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-novncproxy /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-status /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-api: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-api-wsgi: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-conductor: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-dbsync: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-novncproxy: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-pxe-filter: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-rootwrap: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/ironic-status: updating + rm -rfv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.12/site-packages/ironic-29.1.0.dev142.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev142.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.20250530172959.26ee9b8.el10.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev142.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev142.dist-info/RECORD removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev142.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev142.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev142.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/etc/ironic/rootwrap.d + export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64//usr/lib/python3.12/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10 --unique-debug-suffix -29.1.0-0.20250530172959.26ee9b8.el10.x86_64 --unique-debug-src-base openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.dev142 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.20250530172959.26ee9b8.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.UHwEpQ + 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-hardened-ld-errors -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.dev142 + 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-hardened-ld-errors -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.20250530172959.26ee9b8.el10.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-29.1.0.dev142/.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. 2025-05-30 13:31:35.767 2622415 INFO oslo_service.backend [-] Loading backend: eventlet 1 RLock(s) were not greened, to fix this error make sure you run eventlet.monkey_patch() before importing any other modules. 2025-05-30 13:31:35.774 2622415 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-30 13:31:35.920 2622420 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-30 13:31:35.928 2622420 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-30 13:31:35.967 2622422 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-30 13:31:35.974 2622422 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-30 13:31:36.394 2622423 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-30 13:31:36.416 2622423 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.263400s] ... 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.030527s] ... 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.021632s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.019372s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.028140s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.023635s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.023703s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.021774s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.026491s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.024062s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_new_standard_singular_header_ok [0.021170s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.020944s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.021086s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.020420s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.056076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1c2b1772-dc24-4baa-92ef-93e36c0ac39c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.035055s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a677cdf9-d2e3-4204-96a8-2fce75fe56a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.028477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c464032b-92cb-4498-9998-5e74cf98aaf2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.038533s] ... 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.084096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-415d8607-17ce-4630-a73c-358ff1d706d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"allocations": [{"uuid": "f6b63ba8-57a9-4f0f-8645-16f696da4c76", "created_at": "2025-05-30T17:31:41.815201+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/f6b63ba8-57a9-4f0f-8645-16f696da4c76", "rel": "self"}, {"href": "http://localhost/allocations/f6b63ba8-57a9-4f0f-8645-16f696da4c76", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "3b67ec0a-e8cb-4e9a-8f17-95b27ec57404", "created_at": "2025-05-30T17:31:41.815993+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/3b67ec0a-e8cb-4e9a-8f17-95b27ec57404", "rel": "self"}, {"href": "http://localhost/allocations/3b67ec0a-e8cb-4e9a-8f17-95b27ec57404", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "fb7de510-426d-44c4-b6d6-2472c63f0952", "created_at": "2025-05-30T17:31:41.818252+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/fb7de510-426d-44c4-b6d6-2472c63f0952", "rel": "self"}, {"href": "http://localhost/allocations/fb7de510-426d-44c4-b6d6-2472c63f0952", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "51a06a80-a53d-49ce-924c-8ffd500ffc4d", "created_at": "2025-05-30T17:31:41.821916+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/51a06a80-a53d-49ce-924c-8ffd500ffc4d", "rel": "self"}, {"href": "http://localhost/allocations/51a06a80-a53d-49ce-924c-8ffd500ffc4d", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "71c63afa-7627-4592-8bbf-4a5792f135fa", "created_at": "2025-05-30T17:31:41.825960+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/71c63afa-7627-4592-8bbf-4a5792f135fa", "rel": "self"}, {"href": "http://localhost/allocations/71c63afa-7627-4592-8bbf-4a5792f135fa", "rel": "bookmark"}], "node_uuid": null}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.053040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b04c88bd-6241-4a12-bc0b-a37e85b626c0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b87ce366-0bb2-4086-9e0a-49325bf9acd9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "b04c88bd-6241-4a12-bc0b-a37e85b626c0", "created_at": "2025-05-30T17:31:41.876740+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/b04c88bd-6241-4a12-bc0b-a37e85b626c0", "rel": "self"}, {"href": "http://localhost/allocations/b04c88bd-6241-4a12-bc0b-a37e85b626c0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/b04c88bd-6241-4a12-bc0b-a37e85b626c0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b3e3f35-c722-42d4-96e1-7a3532df9837 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b04c88bd-6241-4a12-bc0b-a37e85b626c0", "created_at": "2025-05-30T17:31:41.876740+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/b04c88bd-6241-4a12-bc0b-a37e85b626c0", "rel": "self"}, {"href": "http://localhost/allocations/b04c88bd-6241-4a12-bc0b-a37e85b626c0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field [0.047812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/50254ca2-141d-4400-90b8-4a9808cd6734 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f021586-fe25-43e1-9d21-1faf49faecb4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "50254ca2-141d-4400-90b8-4a9808cd6734", "created_at": "2025-05-30T17:31:41.940114+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/50254ca2-141d-4400-90b8-4a9808cd6734", "rel": "self"}, {"href": "http://localhost/allocations/50254ca2-141d-4400-90b8-4a9808cd6734", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.099340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/21bb8691-cb10-4fd5-9f00-6f72f63242ea WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2bed845-0292-4ff0-a67f-6ec4725cd4cb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "21bb8691-cb10-4fd5-9f00-6f72f63242ea", "created_at": "2025-05-30T17:31:42.022722+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/21bb8691-cb10-4fd5-9f00-6f72f63242ea", "rel": "self"}, {"href": "http://localhost/allocations/21bb8691-cb10-4fd5-9f00-6f72f63242ea", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.059626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/b3b5e1a6-3d5f-49da-8673-0f3225196a38/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_collection.TestCollection.test_get_next [0.135128s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next [0.032874s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.067400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/b1e3132c-c33a-4d0c-b73a-79cb2c0aedf0/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_collection.TestCollection.test_list_convert_with_links [0.052618s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.101988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f62064b-d5ab-4553-baf5-4d3f95cde227 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "4e436c31-6f32-4aae-8f07-79f6a9299277", "created_at": "2025-05-30T17:31:42.257420+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/4e436c31-6f32-4aae-8f07-79f6a9299277", "rel": "self"}, {"href": "http://localhost/allocations/4e436c31-6f32-4aae-8f07-79f6a9299277", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "a99fe4de-09bc-497f-aeac-821345dd0738", "created_at": "2025-05-30T17:31:42.258202+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/a99fe4de-09bc-497f-aeac-821345dd0738", "rel": "self"}, {"href": "http://localhost/allocations/a99fe4de-09bc-497f-aeac-821345dd0738", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "3094c452-9ec1-43b8-95bc-641a0c9f69f6", "created_at": "2025-05-30T17:31:42.258968+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/3094c452-9ec1-43b8-95bc-641a0c9f69f6", "rel": "self"}, {"href": "http://localhost/allocations/3094c452-9ec1-43b8-95bc-641a0c9f69f6", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=3094c452-9ec1-43b8-95bc-641a0c9f69f6"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.109702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e9de8b7-fd46-477f-b5e0-d64e18c98396 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "66fef759-5cd5-4c35-b169-bf0ad207fd1a", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/66fef759-5cd5-4c35-b169-bf0ad207fd1a", "rel": "self"}, {"href": "http://localhost/allocations/66fef759-5cd5-4c35-b169-bf0ad207fd1a", "rel": "bookmark"}]}, {"uuid": "889ed66e-bb18-4fb9-a363-8f9d389fbaaa", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/889ed66e-bb18-4fb9-a363-8f9d389fbaaa", "rel": "self"}, {"href": "http://localhost/allocations/889ed66e-bb18-4fb9-a363-8f9d389fbaaa", "rel": "bookmark"}]}, {"uuid": "2c042d18-9d07-4c6d-abe3-0b2e324328d5", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/2c042d18-9d07-4c6d-abe3-0b2e324328d5", "rel": "self"}, {"href": "http://localhost/allocations/2c042d18-9d07-4c6d-abe3-0b2e324328d5", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=2c042d18-9d07-4c6d-abe3-0b2e324328d5"} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_patch_invalid_api_version [0.187046s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/inspection_rules/b037f094-2a39-4f3e-b77f-f16f812180ff 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\"}"} 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( {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_set_sensitive_field [0.060753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'f455e693-fb57-495a-8b62-2e2af99adb7c', '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/f455e693-fb57-495a-8b62-2e2af99adb7c Openstack-Request-Id: req-baf6a6e3-adad-4392-b831-1d01d4ec89a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f455e693-fb57-495a-8b62-2e2af99adb7c", "created_at": "2025-05-30T17:31:42.468930+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/f455e693-fb57-495a-8b62-2e2af99adb7c", "rel": "self"}, {"href": "http://localhost/inspection/f455e693-fb57-495a-8b62-2e2af99adb7c", "rel": "bookmark"}]} PATCH /v1/inspection_rules/f455e693-fb57-495a-8b62-2e2af99adb7c WITH [{'op': 'replace', 'path': '/sensitive', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-217688da-5a15-4d5c-82a1-e747b85d9220 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f455e693-fb57-495a-8b62-2e2af99adb7c", "created_at": "2025-05-30T17:31:42.468930+00:00", "updated_at": "2025-05-30T17:31:42.491629+00:00", "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/f455e693-fb57-495a-8b62-2e2af99adb7c", "rel": "self"}, {"href": "http://localhost/inspection/f455e693-fb57-495a-8b62-2e2af99adb7c", "rel": "bookmark"}]} PATCH /v1/inspection_rules/f455e693-fb57-495a-8b62-2e2af99adb7c WITH [{'op': 'replace', 'path': '/sensitive', 'value': False}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bd9f7430-0556-4d78-a5bc-f670ed6af27b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.107189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f40ba161-61c3-4776-bd17-628a93bcffd8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "ef595c4e-ab1b-4252-8704-7f9e65680bb3", "created_at": "2025-05-30T17:31:42.480831+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/ef595c4e-ab1b-4252-8704-7f9e65680bb3", "rel": "self"}, {"href": "http://localhost/allocations/ef595c4e-ab1b-4252-8704-7f9e65680bb3", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "a54ddd5b-04eb-4c73-964e-babdd859958e", "created_at": "2025-05-30T17:31:42.489208+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/a54ddd5b-04eb-4c73-964e-babdd859958e", "rel": "self"}, {"href": "http://localhost/allocations/a54ddd5b-04eb-4c73-964e-babdd859958e", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "4641d32e-50fd-4757-9713-ff495e890cef", "created_at": "2025-05-30T17:31:42.492161+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/4641d32e-50fd-4757-9713-ff495e890cef", "rel": "self"}, {"href": "http://localhost/allocations/4641d32e-50fd-4757-9713-ff495e890cef", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=4641d32e-50fd-4757-9713-ff495e890cef"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.061171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87cb71a4-6b7b-493a-8a4e-4833b188efbe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.068818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e2ed9209-ba23-4521-94d8-602adb88585f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.098752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content Openstack-Request-Id: req-5a97c910-7122-49a9-93ce-152789ba1fce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.109764s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18db2f30-4ac2-41fd-ba8c-a5cc6c0e5a93 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "2a265b42-093c-47e2-8aaa-2687489c6622", "created_at": "2025-05-30T17:31:42.636231+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/2a265b42-093c-47e2-8aaa-2687489c6622", "rel": "self"}, {"href": "http://localhost/allocations/2a265b42-093c-47e2-8aaa-2687489c6622", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b7026fa4-1d8f-4877-8cfa-703b4d9dca25", "created_at": "2025-05-30T17:31:42.637027+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/b7026fa4-1d8f-4877-8cfa-703b4d9dca25", "rel": "self"}, {"href": "http://localhost/allocations/b7026fa4-1d8f-4877-8cfa-703b4d9dca25", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c0c27ab5-bfbb-4f5b-bd33-0c3bcc6cb733", "created_at": "2025-05-30T17:31:42.637824+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/c0c27ab5-bfbb-4f5b-bd33-0c3bcc6cb733", "rel": "self"}, {"href": "http://localhost/allocations/c0c27ab5-bfbb-4f5b-bd33-0c3bcc6cb733", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.046112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.1 GOT Response: 204 No Content Openstack-Request-Id: req-7de5a302-9049-4b24-ab3d-3f2a071e6325 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.034975s] ... 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-5763154f-bcde-4da5-b20e-f09fd1aff6b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "754a96fb-9db3-4d1c-b20e-52a1123c06fa", "created_at": "2025-05-30T17:31:42.709103+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/754a96fb-9db3-4d1c-b20e-52a1123c06fa", "rel": "self"}, {"href": "http://localhost/allocations/754a96fb-9db3-4d1c-b20e-52a1123c06fa", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.033529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-75a91a97-296b-43ef-8905-d0ada133325b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.027898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-028c72bc-0340-423f-ad49-aa482e82e2e6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.033928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1aa4de8d-5b44-40ba-86e5-334b5b5b3441 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "e8847a4f-8cc2-417b-8dc3-6eeed714b3f8", "created_at": "2025-05-30T17:31:42.773784+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/e8847a4f-8cc2-417b-8dc3-6eeed714b3f8", "rel": "self"}, {"href": "http://localhost/allocations/e8847a4f-8cc2-417b-8dc3-6eeed714b3f8", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "139aa111-f44f-4d69-ae4d-c10df5741274", "created_at": "2025-05-30T17:31:42.774560+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/139aa111-f44f-4d69-ae4d-c10df5741274", "rel": "self"}, {"href": "http://localhost/allocations/139aa111-f44f-4d69-ae4d-c10df5741274", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b229bed0-c2cf-4c56-ab83-29fa94ae4f22", "created_at": "2025-05-30T17:31:42.775349+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/b229bed0-c2cf-4c56-ab83-29fa94ae4f22", "rel": "self"}, {"href": "http://localhost/allocations/b229bed0-c2cf-4c56-ab83-29fa94ae4f22", "rel": "bookmark"}], "node_uuid": null}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.045225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.json GOT Response: 204 No Content Openstack-Request-Id: req-3c287793-370d-4430-bcf3-1b9e0cea6e3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.033081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a45e0f8c-94ab-4180-b986-e851e8e588ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.036122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-cde1c390-52a9-4747-8a30-d8c1c80e3159 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed_mismatch [0.034116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3dc3a21-6a4f-4da4-b888-a496f927ca5b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Not authorized.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.222213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/cf72f3c2-5fdd-4ee7-8ae5-e946d3916e71 GOT Response: 204 No Content Openstack-Request-Id: req-f09d5010-3b96-4005-a29e-f497c9c94d31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 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( {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.042005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-b48e5f13-b2d8-4456-b954-a4483da954b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.031048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac9ba7ea-2303-4dbf-875d-ec663e1d0dbf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "071e4a70-bd8b-4fd8-a7de-b372cc563e79", "created_at": "2025-05-30T17:31:42.873167+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/071e4a70-bd8b-4fd8-a7de-b372cc563e79", "rel": "self"}, {"href": "http://localhost/allocations/071e4a70-bd8b-4fd8-a7de-b372cc563e79", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "fce23c9a-8afb-484a-8ca9-03ef63d13199", "created_at": "2025-05-30T17:31:42.873944+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/fce23c9a-8afb-484a-8ca9-03ef63d13199", "rel": "self"}, {"href": "http://localhost/allocations/fce23c9a-8afb-484a-8ca9-03ef63d13199", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "6a11d748-1a21-4db0-a12f-1d0eb7c2aa97", "created_at": "2025-05-30T17:31:42.874686+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/6a11d748-1a21-4db0-a12f-1d0eb7c2aa97", "rel": "self"}, {"href": "http://localhost/allocations/6a11d748-1a21-4db0-a12f-1d0eb7c2aa97", "rel": "bookmark"}], "node_uuid": null}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.035522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1 GOT Response: 204 No Content Openstack-Request-Id: req-8bb09bc1-466e-425a-bec7-9a2d03809ebd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.031188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ab301ca9-2398-4778-9a78-9a0c4053980b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.030202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e23fccaf-18a5-4302-a62f-f9e0492f245b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.042915s] ... 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-41013579-4a77-42ba-9006-c639973183b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c33b8fdb-c80a-4e4f-bfd9-5904fca26dac", "created_at": "2025-05-30T17:31:42.910421+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/c33b8fdb-c80a-4e4f-bfd9-5904fca26dac", "rel": "self"}, {"href": "http://localhost/allocations/c33b8fdb-c80a-4e4f-bfd9-5904fca26dac", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.028428s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/d7b06ea9-95b4-42ed-8fdd-e7fad7083159 WITH {} 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_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.042305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content Openstack-Request-Id: req-23a26b37-0bc0-4b5e-8e1a-b76308c1bdd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.067532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-139b4fe8-9ec7-440e-8da9-02268592ccc2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.026122s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json_not_found [0.029233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1f451a4b-34f1-4a34-8804-4ca0bb3427c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation alloc1.json could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.030567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-899b618f-fa98-438c-8d67-1fdbc66b94b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.034399s] ... 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-f1a9350d-8434-4340-920e-2bfcaca4b27b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"extra": {}, "name": null, "links": [{"href": "http://localhost/v1/allocations/fd05f2b7-ccaa-4e44-ad68-61265e94133d", "rel": "self"}, {"href": "http://localhost/allocations/fd05f2b7-ccaa-4e44-ad68-61265e94133d", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.037017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content Openstack-Request-Id: req-94628f2c-3b24-4738-8be8-96de20d70e95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.044187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8ed3e4ad-f5e6-4e4d-a032-4acc04e40da2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "66cd3ca6-e9d1-49a0-9f08-2b1bb7e0bc7d", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/66cd3ca6-e9d1-49a0-9f08-2b1bb7e0bc7d", "rel": "self"}, {"href": "http://localhost/allocations/66cd3ca6-e9d1-49a0-9f08-2b1bb7e0bc7d", "rel": "bookmark"}]}, {"uuid": "7d32333e-d333-4830-8bcd-b937e8b05034", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/7d32333e-d333-4830-8bcd-b937e8b05034", "rel": "self"}, {"href": "http://localhost/allocations/7d32333e-d333-4830-8bcd-b937e8b05034", "rel": "bookmark"}]}, {"uuid": "24ee6ff4-8c01-4888-a886-d03b233bd3b3", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/24ee6ff4-8c01-4888-a886-d03b233bd3b3", "rel": "self"}, {"href": "http://localhost/allocations/24ee6ff4-8c01-4888-a886-d03b233bd3b3", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.030995s] ... 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_node.TestDelete.test_delete_portgroup_subresource [0.064351s] ... 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-86c44646-1b52-429e-a6df-1277cdd7672d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.035616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1cf4bf0d-487c-4c51-85f8-58ee28ec00c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"links": [{"href": "http://localhost/v1/allocations/7e2836f0-7935-466c-bcb6-d06cdcbe4ca2", "rel": "self"}, {"href": "http://localhost/allocations/7e2836f0-7935-466c-bcb6-d06cdcbe4ca2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/3db953ca-eb59-49e0-a255-a2d6a994324f", "rel": "self"}, {"href": "http://localhost/allocations/3db953ca-eb59-49e0-a255-a2d6a994324f", "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=3db953ca-eb59-49e0-a255-a2d6a994324f"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.037916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/071ce18e-c708-404b-8465-6ba92c7b4b90/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e2cbd409-5eb6-4ea4-a964-62dad364ef11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node 071ce18e-c708-404b-8465-6ba92c7b4b90 was not found\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.049182s] ... 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-59f09d08-3a09-49ab-bbf2-e41b1d620e35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.029207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/9788bb83-9699-4166-a7c7-873d3c42ec0a 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\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.024747s] ... 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_node.TestDelete.test_delete_ports_subresource_no_port_id [0.031899s] ... 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-cb449602-f23a-474d-8c85-cc417f2f5bde X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.039683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/128eed48-d64d-4cee-82b5-3776dce10018/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e42874fa-dcba-4c2b-99f2-8fbd7b30599e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 128eed48-d64d-4cee-82b5-3776dce10018 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.049960s] ... 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-82515c24-d0f3-4d39-bc31-cbaa49f3230e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.038694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/bb54deeb-5b62-48c3-a35f-c9c7822cd05d GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-bb32d1af-9967-4b4c-9326-f9b03cb58ea9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.032400s] ... 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-75d35c61-7056-4d64-be1d-afb189ae31aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.038382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/18c9d724-4744-46e2-92cd-187f4ac83e00 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa2b6396-4e28-4a59-88ff-4a2325d73424 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "18c9d724-4744-46e2-92cd-187f4ac83e00", "created_at": "2025-05-30T17:31:43.256204+00:00", "updated_at": "2025-05-30T17:31:43.270671+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/18c9d724-4744-46e2-92cd-187f4ac83e00", "rel": "self"}, {"href": "http://localhost/allocations/18c9d724-4744-46e2-92cd-187f4ac83e00", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.035041s] ... 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-b905ecc4-0df5-47f1-97ec-41603b8421b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.197675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/81a6e63b-1dad-4351-8b87-3d88cfce8619?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca6c8909-ee7c-4054-a09b-b1c7a63baffe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.051243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/02f327c0-5c5d-4714-8038-76f8e20905be 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-1f4b726d-8d0a-49bf-93fd-43c183c917b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "02f327c0-5c5d-4714-8038-76f8e20905be", "created_at": "2025-05-30T17:31:43.295490+00:00", "updated_at": "2025-05-30T17:31:43.310121+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/02f327c0-5c5d-4714-8038-76f8e20905be", "rel": "self"}, {"href": "http://localhost/allocations/02f327c0-5c5d-4714-8038-76f8e20905be", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/02f327c0-5c5d-4714-8038-76f8e20905be WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3c2d51b-ba54-4076-b4f5-f9039d3fe7ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "02f327c0-5c5d-4714-8038-76f8e20905be", "created_at": "2025-05-30T17:31:43.295490+00:00", "updated_at": "2025-05-30T17:31:43.310121+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/02f327c0-5c5d-4714-8038-76f8e20905be", "rel": "self"}, {"href": "http://localhost/allocations/02f327c0-5c5d-4714-8038-76f8e20905be", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.039961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/0d91214f-7857-4093-9b68-f3979c5ee723 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-45f3aac0-d667-4123-b71b-d3608fe5d8ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0d91214f-7857-4093-9b68-f3979c5ee723", "created_at": "2025-05-30T17:31:43.326495+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/0d91214f-7857-4093-9b68-f3979c5ee723", "rel": "self"}, {"href": "http://localhost/allocations/0d91214f-7857-4093-9b68-f3979c5ee723", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.036815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/249b3641-f3d5-411e-aa6a-7f55300aa3b9 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4a7e492a-0362-4251-bddc-7b4dad19c47b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.030187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/7f318b3c-48fb-4f7c-bad1-2d12f4a45990?fields=resource_class,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a0f8244-09c4-40da-8f43-11402dd52c67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"extra": {}, "resource_class": "baremetal", "links": [{"href": "http://localhost/v1/allocations/7f318b3c-48fb-4f7c-bad1-2d12f4a45990", "rel": "self"}, {"href": "http://localhost/allocations/7f318b3c-48fb-4f7c-bad1-2d12f4a45990", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.106633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '322d2570-aab5-4d8c-a699-76e571bf3d59', '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/322d2570-aab5-4d8c-a699-76e571bf3d59 Openstack-Request-Id: req-55d1ccff-2ab9-4ced-9b45-e922b486ccd5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "322d2570-aab5-4d8c-a699-76e571bf3d59", "created_at": "2025-05-30T17:31:43.373709+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/322d2570-aab5-4d8c-a699-76e571bf3d59", "rel": "self"}, {"href": "http://localhost/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/ports", "rel": "self"}, {"href": "http://localhost/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/states", "rel": "self"}, {"href": "http://localhost/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/volume", "rel": "self"}, {"href": "http://localhost/nodes/322d2570-aab5-4d8c-a699-76e571bf3d59/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.026673s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/f031a6e1-5f71-4fde-a855-13fc25e83ad5 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_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.025629s] ... 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\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.061778s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9939af34-6a36-463e-bd3f-52ce1af16dbe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "eaca7ed9-03b6-45f8-9f92-2108c1273954", "created_at": "2025-05-30T17:31:43.385168+00:00", "updated_at": "2025-05-30T17:31:43.399981+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/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "self"}, {"href": "http://localhost/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e7b6453-5cb8-4731-a7af-756ee002f239 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "eaca7ed9-03b6-45f8-9f92-2108c1273954", "created_at": "2025-05-30T17:31:43.385168+00:00", "updated_at": "2025-05-30T17:31:43.399981+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/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "self"}, {"href": "http://localhost/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "bookmark"}], "node_uuid": null} PATCH /v1/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64c908f1-e2ce-4e77-8369-a90dcb34daac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "eaca7ed9-03b6-45f8-9f92-2108c1273954", "created_at": "2025-05-30T17:31:43.385168+00:00", "updated_at": "2025-05-30T17:31:43.416966+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "self"}, {"href": "http://localhost/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-654e042b-4d25-4d0b-a5df-64a2d7deaf3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "eaca7ed9-03b6-45f8-9f92-2108c1273954", "created_at": "2025-05-30T17:31:43.385168+00:00", "updated_at": "2025-05-30T17:31:43.416966+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "self"}, {"href": "http://localhost/allocations/eaca7ed9-03b6-45f8-9f92-2108c1273954", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_double_json_in_name [0.028812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/15a0643d-86f1-405a-acee-ef81e6fab2e2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d137c358-0f6d-450c-a209-5b5921ac270b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "15a0643d-86f1-405a-acee-ef81e6fab2e2", "created_at": "2025-05-30T17:31:43.440549+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/15a0643d-86f1-405a-acee-ef81e6fab2e2", "rel": "self"}, {"href": "http://localhost/allocations/15a0643d-86f1-405a-acee-ef81e6fab2e2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.049744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a8de3410-926f-4a35-b3fd-609f1db2f0ed WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-92400017-cda1-4a73-a4eb-7394954a6dbe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestNodeParentNodePost.test_create_node_with_parent_node [0.102697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1d396eed-62f9-4477-a2ae-d0f32a4b49c1', '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/1d396eed-62f9-4477-a2ae-d0f32a4b49c1 Openstack-Request-Id: req-dff3d21c-e47c-4492-93f0-426734d12ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "1d396eed-62f9-4477-a2ae-d0f32a4b49c1", "created_at": "2025-05-30T17:31:43.462505+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/1d396eed-62f9-4477-a2ae-d0f32a4b49c1", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/states", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/volume", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/volume", "rel": "bookmark"}]} GET /v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b8ae0bf-c587-4c83-a5bf-630613180dab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "1d396eed-62f9-4477-a2ae-d0f32a4b49c1", "created_at": "2025-05-30T17:31:43.462505+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/1d396eed-62f9-4477-a2ae-d0f32a4b49c1", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/states", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/volume", "rel": "self"}, {"href": "http://localhost/nodes/1d396eed-62f9-4477-a2ae-d0f32a4b49c1/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.055392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/1255fc6e-6339-44cc-8b28-dfb9e6750d71.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-069b7d08-0ef6-48cc-8d91-bd16381360f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1255fc6e-6339-44cc-8b28-dfb9e6750d71", "created_at": "2025-05-30T17:31:43.490668+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/1255fc6e-6339-44cc-8b28-dfb9e6750d71", "rel": "self"}, {"href": "http://localhost/allocations/1255fc6e-6339-44cc-8b28-dfb9e6750d71", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.050574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/4b32fdb5-cf6e-4332-88d9-f45d889557b5 WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21d485f6-1bdd-4cbf-8cf8-26de4ca56b90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4b32fdb5-cf6e-4332-88d9-f45d889557b5", "created_at": "2025-05-30T17:31:43.506554+00:00", "updated_at": "2025-05-30T17:31:43.518662+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/4b32fdb5-cf6e-4332-88d9-f45d889557b5", "rel": "self"}, {"href": "http://localhost/allocations/4b32fdb5-cf6e-4332-88d9-f45d889557b5", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/4b32fdb5-cf6e-4332-88d9-f45d889557b5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d42f943-c71b-4d1b-a300-7ab11d0b7f7a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4b32fdb5-cf6e-4332-88d9-f45d889557b5", "created_at": "2025-05-30T17:31:43.506554+00:00", "updated_at": "2025-05-30T17:31:43.518662+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/4b32fdb5-cf6e-4332-88d9-f45d889557b5", "rel": "self"}, {"href": "http://localhost/allocations/4b32fdb5-cf6e-4332-88d9-f45d889557b5", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.030882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/9c4475ea-ce85-43dd-bbfe-1332739cf00e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d716970a-d32a-452e-ace2-a828045f1869 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9c4475ea-ce85-43dd-bbfe-1332739cf00e", "created_at": "2025-05-30T17:31:43.527301+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/9c4475ea-ce85-43dd-bbfe-1332739cf00e", "rel": "self"}, {"href": "http://localhost/allocations/9c4475ea-ce85-43dd-bbfe-1332739cf00e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.030105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/7057fdb4-8849-4b04-a0ac-3f3d2b44e058 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ce5a237c-aaae-49ba-bc63-bd1f25214a75 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_not_found [0.026915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/17ebc89b-42ad-4751-89fe-f9076b9bbc72.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2f9e2a31-ad16-4cb9-852a-48e99f986ba2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 17ebc89b-42ad-4751-89fe-f9076b9bbc72.json could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.094024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '0d84022f-4d57-4ab6-9ba7-870bf691a5ef', '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-350893bf-81ba-41ed-97e1-eec5439d53b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestPatch.test_replace_invalid_name [0.037538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/44ba6ca9-ce4d-466b-8b5a-06f43eccca23 WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e13085d-2ecb-404b-9133-65331a4def20 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.050112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/cedfb016-5f79-48b4-bbbd-9149a9b009da WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb0610d7-25ca-4686-a6cb-47db9db00088 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cedfb016-5f79-48b4-bbbd-9149a9b009da", "created_at": "2025-05-30T17:31:43.586548+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/cedfb016-5f79-48b4-bbbd-9149a9b009da", "rel": "self"}, {"href": "http://localhost/allocations/cedfb016-5f79-48b4-bbbd-9149a9b009da", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.045754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/272ffb30-6463-4987-82ef-bd7655bab07e WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6b052e5-eaf6-4b62-ab41-4da8f0a09644 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "272ffb30-6463-4987-82ef-bd7655bab07e", "created_at": "2025-05-30T17:31:43.621257+00:00", "updated_at": "2025-05-30T17:31:43.634358+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/272ffb30-6463-4987-82ef-bd7655bab07e", "rel": "self"}, {"href": "http://localhost/allocations/272ffb30-6463-4987-82ef-bd7655bab07e", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/272ffb30-6463-4987-82ef-bd7655bab07e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a7e5865-0db5-4fa5-80ad-25cc3e0f9220 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "272ffb30-6463-4987-82ef-bd7655bab07e", "created_at": "2025-05-30T17:31:43.621257+00:00", "updated_at": "2025-05-30T17:31:43.634358+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/272ffb30-6463-4987-82ef-bd7655bab07e", "rel": "self"}, {"href": "http://localhost/allocations/272ffb30-6463-4987-82ef-bd7655bab07e", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field [0.037159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/c08f1024-d971-43db-96e6-60863c313c75?fields=owner WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4fc49bc6-cf9d-42f9-96e1-b43602ffa02e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"owner": "12345", "links": [{"href": "http://localhost/v1/allocations/c08f1024-d971-43db-96e6-60863c313c75", "rel": "self"}, {"href": "http://localhost/allocations/c08f1024-d971-43db-96e6-60863c313c75", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.038743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/3eef834a-d855-43b7-b34d-e9dcab3857da WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11aaa8df-d8a7-400c-9530-8bd4bc0a61f0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "3eef834a-d855-43b7-b34d-e9dcab3857da", "created_at": "2025-05-30T17:31:43.661077+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/3eef834a-d855-43b7-b34d-e9dcab3857da", "rel": "self"}, {"href": "http://localhost/allocations/3eef834a-d855-43b7-b34d-e9dcab3857da", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/3eef834a-d855-43b7-b34d-e9dcab3857da WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51ed228b-7b3e-4632-8003-e9c43df39b3e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "3eef834a-d855-43b7-b34d-e9dcab3857da", "created_at": "2025-05-30T17:31:43.661077+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/3eef834a-d855-43b7-b34d-e9dcab3857da", "rel": "self"}, {"href": "http://localhost/allocations/3eef834a-d855-43b7-b34d-e9dcab3857da", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.039422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/82728876-8cd5-4490-87a4-d19829444d34 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8895c0eb-39b4-40cd-9440-8537ad4cc08f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "82728876-8cd5-4490-87a4-d19829444d34", "created_at": "2025-05-30T17:31:43.672886+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/82728876-8cd5-4490-87a4-d19829444d34", "rel": "self"}, {"href": "http://localhost/allocations/82728876-8cd5-4490-87a4-d19829444d34", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/82728876-8cd5-4490-87a4-d19829444d34 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f9c5986-164e-4084-8c7b-4fa9e781caa1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "82728876-8cd5-4490-87a4-d19829444d34", "created_at": "2025-05-30T17:31:43.672886+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/82728876-8cd5-4490-87a4-d19829444d34", "rel": "self"}, {"href": "http://localhost/allocations/82728876-8cd5-4490-87a4-d19829444d34", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /allocations/82728876-8cd5-4490-87a4-d19829444d34 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4f3fcec-eef4-442f-a7b0-853a78e284d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "82728876-8cd5-4490-87a4-d19829444d34", "created_at": "2025-05-30T17:31:43.672886+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/82728876-8cd5-4490-87a4-d19829444d34", "rel": "self"}, {"href": "http://localhost/allocations/82728876-8cd5-4490-87a4-d19829444d34", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.047468s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed37a8c3-b9bb-4bb9-b587-cc3463e6974a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "cfe28372-52ee-443d-b795-11ef0942a921", "created_at": "2025-05-30T17:31:43.715035+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/cfe28372-52ee-443d-b795-11ef0942a921", "rel": "self"}, {"href": "http://localhost/allocations/cfe28372-52ee-443d-b795-11ef0942a921", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8062ddb2-1aaf-4790-92ae-cb848e72e9d5", "created_at": "2025-05-30T17:31:43.715901+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/8062ddb2-1aaf-4790-92ae-cb848e72e9d5", "rel": "self"}, {"href": "http://localhost/allocations/8062ddb2-1aaf-4790-92ae-cb848e72e9d5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "46d688ed-20a0-4647-acac-cdc5006fb4f1", "created_at": "2025-05-30T17:31:43.716635+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/46d688ed-20a0-4647-acac-cdc5006fb4f1", "rel": "self"}, {"href": "http://localhost/allocations/46d688ed-20a0-4647-acac-cdc5006fb4f1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c160924c-233a-429f-a113-dcb4f60e3c60", "created_at": "2025-05-30T17:31:43.717363+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/c160924c-233a-429f-a113-dcb4f60e3c60", "rel": "self"}, {"href": "http://localhost/allocations/c160924c-233a-429f-a113-dcb4f60e3c60", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "24c2d710-f40d-482f-81df-fe4c270b68ed", "created_at": "2025-05-30T17:31:43.718067+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/24c2d710-f40d-482f-81df-fe4c270b68ed", "rel": "self"}, {"href": "http://localhost/allocations/24c2d710-f40d-482f-81df-fe4c270b68ed", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.045735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/c51c88e5-3aa2-4dec-aa34-7d715f53abaa WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b278369c-3e73-4afe-bdb2-7a80cab4aff8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c51c88e5-3aa2-4dec-aa34-7d715f53abaa", "created_at": "2025-05-30T17:31:43.700393+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/c51c88e5-3aa2-4dec-aa34-7d715f53abaa", "rel": "self"}, {"href": "http://localhost/allocations/c51c88e5-3aa2-4dec-aa34-7d715f53abaa", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/c51c88e5-3aa2-4dec-aa34-7d715f53abaa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66047c5c-a376-419d-beab-2cc447608b50 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c51c88e5-3aa2-4dec-aa34-7d715f53abaa", "created_at": "2025-05-30T17:31:43.700393+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/c51c88e5-3aa2-4dec-aa34-7d715f53abaa", "rel": "self"}, {"href": "http://localhost/allocations/c51c88e5-3aa2-4dec-aa34-7d715f53abaa", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.030347s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3362ccec-46ba-4222-85c8-0aa870c82bc6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "7f09caea-ce49-4015-ae81-e8e42d2f602d", "created_at": "2025-05-30T17:31:43.761649+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/7f09caea-ce49-4015-ae81-e8e42d2f602d", "rel": "self"}, {"href": "http://localhost/allocations/7f09caea-ce49-4015-ae81-e8e42d2f602d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.047465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/fdc85d67-8323-4209-a642-95fe31836384 WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d78b1554-0b31-4dce-a139-86eb8fbd724f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.213727s] ... 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-0c93f546-010e-4fcc-8927-3ab05276f2b5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-720ceda1-b7de-4dc6-b628-e93512f4e46c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.028582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a622aa92-b56b-4179-a375-a9cc3163995c WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-07856bf4-5590-4434-b486-c8dc1d55c936 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.036204s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-020a36a9-fb7c-40e3-a578-eafe10db897a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "17ed7b0a-4c23-414e-b137-a3aff9771438", "created_at": "2025-05-30T17:31:43.792043+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/17ed7b0a-4c23-414e-b137-a3aff9771438", "rel": "self"}, {"href": "http://localhost/allocations/17ed7b0a-4c23-414e-b137-a3aff9771438", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "bf08745e-643c-4e1f-8aac-71a7a0322dd6", "created_at": "2025-05-30T17:31:43.792806+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/bf08745e-643c-4e1f-8aac-71a7a0322dd6", "rel": "self"}, {"href": "http://localhost/allocations/bf08745e-643c-4e1f-8aac-71a7a0322dd6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f0866dd3-bb0a-4d75-8521-3599349c02cc", "created_at": "2025-05-30T17:31:43.793563+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/f0866dd3-bb0a-4d75-8521-3599349c02cc", "rel": "self"}, {"href": "http://localhost/allocations/f0866dd3-bb0a-4d75-8521-3599349c02cc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.027389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/b81d6611-feac-47f1-b020-d0c0fbc90dca WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3804c765-5458-452d-95a9-48d478192ffc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b81d6611-feac-47f1-b020-d0c0fbc90dca could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.030916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-487eeea9-2d85-4426-94c8-7f701c6ba113 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "7e9aace0-be17-49c1-a4dd-832c2ba2c472", "created_at": "2025-05-30T17:31:43.830161+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/7e9aace0-be17-49c1-a4dd-832c2ba2c472", "rel": "self"}, {"href": "http://localhost/allocations/7e9aace0-be17-49c1-a4dd-832c2ba2c472", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "3e29953f-8e47-43ae-a93d-f1fe34019009", "created_at": "2025-05-30T17:31:43.829434+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/3e29953f-8e47-43ae-a93d-f1fe34019009", "rel": "self"}, {"href": "http://localhost/allocations/3e29953f-8e47-43ae-a93d-f1fe34019009", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "26b70cd3-450e-41f8-b63d-d502bfe03827", "created_at": "2025-05-30T17:31:43.828656+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/26b70cd3-450e-41f8-b63d-d502bfe03827", "rel": "self"}, {"href": "http://localhost/allocations/26b70cd3-450e-41f8-b63d-d502bfe03827", "rel": "bookmark"}], "node_uuid": null}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable [0.034313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/41b9e755-1c38-43bb-a8a2-26ee94d44153 WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bc7b62a8-8471-47f3-aa64-d71de1d64d55 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.040082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cd9e021a-8c25-4da5-8b17-a8cf58d26c33 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-4fb22a31-5a2f-44fa-a225-920c196238f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-4d911eac-127d-436c-ad56-753069bae15d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-3858a5d8-3b7d-4858-90bb-b47be5c572c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_deploy_template.TestListDeployTemplates.test_collection_links [0.053323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb552718-923f-4356-a93e-0067e0054151 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "81f72003-0e07-4f1f-b37b-58b32c998aeb", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/81f72003-0e07-4f1f-b37b-58b32c998aeb", "rel": "self"}, {"href": "http://localhost/deploy_templates/81f72003-0e07-4f1f-b37b-58b32c998aeb", "rel": "bookmark"}]}, {"uuid": "581712f8-5cc6-49e5-b1b9-a1dc5db84281", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/581712f8-5cc6-49e5-b1b9-a1dc5db84281", "rel": "self"}, {"href": "http://localhost/deploy_templates/581712f8-5cc6-49e5-b1b9-a1dc5db84281", "rel": "bookmark"}]}, {"uuid": "1e154036-9a78-4aa9-bb0d-1088d19390bd", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/1e154036-9a78-4aa9-bb0d-1088d19390bd", "rel": "self"}, {"href": "http://localhost/deploy_templates/1e154036-9a78-4aa9-bb0d-1088d19390bd", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=1e154036-9a78-4aa9-bb0d-1088d19390bd"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.051324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-c2e898f4-e83d-4eb1-a55e-46b96f7dc73f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-285ad63c-4dd3-497b-98c6-104ce8a0a5d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.036341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a725f694-4e95-4ddd-bf91-71bc0b33996a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "71486e4d-2cda-4f12-b8f0-d4740bc1c31e", "links": [{"href": "http://localhost/v1/deploy_templates/71486e4d-2cda-4f12-b8f0-d4740bc1c31e", "rel": "self"}, {"href": "http://localhost/deploy_templates/71486e4d-2cda-4f12-b8f0-d4740bc1c31e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "1e54bc92-20b1-4c25-9a51-2962f5ece489", "links": [{"href": "http://localhost/v1/deploy_templates/1e54bc92-20b1-4c25-9a51-2962f5ece489", "rel": "self"}, {"href": "http://localhost/deploy_templates/1e54bc92-20b1-4c25-9a51-2962f5ece489", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "6b9ff080-adee-4ef7-918b-fcb9d908c1a2", "links": [{"href": "http://localhost/v1/deploy_templates/6b9ff080-adee-4ef7-918b-fcb9d908c1a2", "rel": "self"}, {"href": "http://localhost/deploy_templates/6b9ff080-adee-4ef7-918b-fcb9d908c1a2", "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=6b9ff080-adee-4ef7-918b-fcb9d908c1a2"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.026419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/bdf757c2-2007-45c3-8d68-743cbbb59ec8 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-60dd6cc9-4718-49df-be53-a609fce4f3e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis bdf757c2-2007-45c3-8d68-743cbbb59ec8 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.035335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-89d09af6-169c-4cb7-80c1-0728cce51861 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.038017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe4a7ca7-f9c3-449e-b598-65924bcbc840 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "c9c53f86-9663-45c0-86d8-269035e40b61", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/c9c53f86-9663-45c0-86d8-269035e40b61", "rel": "self"}, {"href": "http://localhost/deploy_templates/c9c53f86-9663-45c0-86d8-269035e40b61", "rel": "bookmark"}]}, {"uuid": "3297db62-9f5f-41af-8c5e-fc3b121c51b2", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/3297db62-9f5f-41af-8c5e-fc3b121c51b2", "rel": "self"}, {"href": "http://localhost/deploy_templates/3297db62-9f5f-41af-8c5e-fc3b121c51b2", "rel": "bookmark"}]}, {"uuid": "43e47f66-8912-4c57-8886-faf0b8d9642a", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/43e47f66-8912-4c57-8886-faf0b8d9642a", "rel": "self"}, {"href": "http://localhost/deploy_templates/43e47f66-8912-4c57-8886-faf0b8d9642a", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=43e47f66-8912-4c57-8886-faf0b8d9642a"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.024426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e0aef0fc-f69c-4556-8832-3707fb455736 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestListDeployTemplates.test_detail_query [0.034663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c93912e-fac8-47a7-8a29-a62a7408d878 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "2747a8da-55dd-479a-a39c-e328a175b735", "created_at": "2025-05-30T17:31:44.022309+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2747a8da-55dd-479a-a39c-e328a175b735", "rel": "self"}, {"href": "http://localhost/deploy_templates/2747a8da-55dd-479a-a39c-e328a175b735", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.049628s] ... 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-ba382d94-19a6-4c73-8d2f-8b180b139fed X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.047788+00:00", "updated_at": "2025-05-30T17:31:44.060949+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-fd05bd1c-0614-4dbf-8056-9cca285ca6db X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.047788+00:00", "updated_at": "2025-05-30T17:31:44.060949+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"}]]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.033637s] ... 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-e082016f-7b98-4cb3-8694-2fdb087dd75e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.089628+00:00", "updated_at": "2025-05-30T17:31:44.098545+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"}]]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.026725s] ... 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-7981e2e8-f9d7-4f6d-b324-9f3e366de0a1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPost.test_create_node_automated_clean [0.339031s] ... 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-ba07676f-ef01-408a-9982-db72722a5d3d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:43.903192+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-db016bc5-e999-4499-9944-8f0b278ee63c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:43.903192+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.026367s] ... 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-d6517c04-7fb8-4fd2-a484-d1745aa36099 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestPost.test_backfill [0.426761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '73bbd385-b35c-434d-bd6e-1eca8103bc15', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/73bbd385-b35c-434d-bd6e-1eca8103bc15 Openstack-Request-Id: req-fa7e89e6-5a11-46f6-8aaa-1245c6f034bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "73bbd385-b35c-434d-bd6e-1eca8103bc15", "created_at": "2025-05-30T17:31:44.141732+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/73bbd385-b35c-434d-bd6e-1eca8103bc15", "rel": "self"}, {"href": "http://localhost/allocations/73bbd385-b35c-434d-bd6e-1eca8103bc15", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/73bbd385-b35c-434d-bd6e-1eca8103bc15 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3347300-0c57-4942-99cf-13d2191646c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "73bbd385-b35c-434d-bd6e-1eca8103bc15", "created_at": "2025-05-30T17:31:44.141732+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/73bbd385-b35c-434d-bd6e-1eca8103bc15", "rel": "self"}, {"href": "http://localhost/allocations/73bbd385-b35c-434d-bd6e-1eca8103bc15", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} 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( {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.063350s] ... 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-43815b35-fa2a-489c-bfd0-88ac25cbdb93 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_chassis.TestPatch.test_remove_multi [0.048891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-368c766d-8ad4-4bfc-a55d-38926d8b8230 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ddfac0d1-1138-46ff-93c1-525e6ff3706f", "created_at": "2025-05-30T17:31:44.179069+00:00", "updated_at": "2025-05-30T17:31:44.187441+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "bookmark"}]]} GET /v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86ddda9a-6d32-4823-baff-1da6d15c563a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ddfac0d1-1138-46ff-93c1-525e6ff3706f", "created_at": "2025-05-30T17:31:44.179069+00:00", "updated_at": "2025-05-30T17:31:44.187441+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "bookmark"}]]} PATCH /v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-652b62aa-0fea-47db-b269-21f9eecf0492 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ddfac0d1-1138-46ff-93c1-525e6ff3706f", "created_at": "2025-05-30T17:31:44.179069+00:00", "updated_at": "2025-05-30T17:31:44.198780+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "bookmark"}]]} GET /v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5e4eeca-a6f2-4d3a-963b-2a0a29857374 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ddfac0d1-1138-46ff-93c1-525e6ff3706f", "created_at": "2025-05-30T17:31:44.179069+00:00", "updated_at": "2025-05-30T17:31:44.198780+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ddfac0d1-1138-46ff-93c1-525e6ff3706f/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.028077s] ... 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-44bfe6fb-4dc7-4141-bd5a-d257726977db X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_chassis.TestPatch.test_remove_singular [0.036512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/7e536362-f6ef-4a50-90de-754f7520249c WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6eaa4dbb-c1a2-4b6d-9988-e9f809b7e556 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7e536362-f6ef-4a50-90de-754f7520249c", "created_at": "2025-05-30T17:31:44.255762+00:00", "updated_at": "2025-05-30T17:31:44.264366+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/7e536362-f6ef-4a50-90de-754f7520249c", "rel": "self"}, {"href": "http://localhost/chassis/7e536362-f6ef-4a50-90de-754f7520249c", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7e536362-f6ef-4a50-90de-754f7520249c/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7e536362-f6ef-4a50-90de-754f7520249c/nodes", "rel": "bookmark"}]]} GET /v1/chassis/7e536362-f6ef-4a50-90de-754f7520249c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e055d40f-6835-455d-8d7a-96776ee2d61a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7e536362-f6ef-4a50-90de-754f7520249c", "created_at": "2025-05-30T17:31:44.255762+00:00", "updated_at": "2025-05-30T17:31:44.264366+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/7e536362-f6ef-4a50-90de-754f7520249c", "rel": "self"}, {"href": "http://localhost/chassis/7e536362-f6ef-4a50-90de-754f7520249c", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7e536362-f6ef-4a50-90de-754f7520249c/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7e536362-f6ef-4a50-90de-754f7520249c/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.264813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37b65e41-87d6-477d-bb49-e227e5c2081c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "af765506-1b57-4464-b6a9-0a04b00f8f5d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/af765506-1b57-4464-b6a9-0a04b00f8f5d", "rel": "self"}, {"href": "http://localhost/deploy_templates/af765506-1b57-4464-b6a9-0a04b00f8f5d", "rel": "bookmark"}]}]} GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1a4742e-689e-4016-a774-923a2e2d141d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "af765506-1b57-4464-b6a9-0a04b00f8f5d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/af765506-1b57-4464-b6a9-0a04b00f8f5d", "rel": "self"}, {"href": "http://localhost/deploy_templates/af765506-1b57-4464-b6a9-0a04b00f8f5d", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.105458s] ... 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/c2ec38cc-ef77-4a6a-badd-466f6d3204a2 Openstack-Request-Id: req-ab93f30a-6a19-4685-8d43-eb9b37194bb8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c2ec38cc-ef77-4a6a-badd-466f6d3204a2", "created_at": "2025-05-30T17:31:44.262938+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/c2ec38cc-ef77-4a6a-badd-466f6d3204a2", "rel": "self"}, {"href": "http://localhost/allocations/c2ec38cc-ef77-4a6a-badd-466f6d3204a2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/c2ec38cc-ef77-4a6a-badd-466f6d3204a2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2911f9ef-bbce-4163-8de1-ddf200539ebf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c2ec38cc-ef77-4a6a-badd-466f6d3204a2", "created_at": "2025-05-30T17:31:44.262938+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/c2ec38cc-ef77-4a6a-badd-466f6d3204a2", "rel": "self"}, {"href": "http://localhost/allocations/c2ec38cc-ef77-4a6a-badd-466f6d3204a2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.046490s] ... 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-dd947a6b-6936-4387-95f5-56831c565b6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.034827s] ... 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-96d4a144-7661-47d2-8387-6fc648cca3d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "d5e75323-24a3-4512-aa1d-3b93286e5b3e", "created_at": "2025-05-30T17:31:44.322012+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d5e75323-24a3-4512-aa1d-3b93286e5b3e", "rel": "self"}, {"href": "http://localhost/deploy_templates/d5e75323-24a3-4512-aa1d-3b93286e5b3e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "1ebcf0f0-ca26-47ef-86a0-4b508836607f", "created_at": "2025-05-30T17:31:44.320753+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1ebcf0f0-ca26-47ef-86a0-4b508836607f", "rel": "self"}, {"href": "http://localhost/deploy_templates/1ebcf0f0-ca26-47ef-86a0-4b508836607f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "769f9a88-ff94-45ab-840b-c80f43281907", "created_at": "2025-05-30T17:31:44.317249+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/769f9a88-ff94-45ab-840b-c80f43281907", "rel": "self"}, {"href": "http://localhost/deploy_templates/769f9a88-ff94-45ab-840b-c80f43281907", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.136775s] ... 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-d4556e9e-f5af-4365-a03d-ce450976d85f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-0a0370f4-94d2-42dd-8af5-33f25d5c5ea9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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': '74524f7a-d0c3-4db5-aa40-74e434665d57', '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/74524f7a-d0c3-4db5-aa40-74e434665d57 Openstack-Request-Id: req-e7975235-ca4e-4e59-b0cd-5568152eaae9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "74524f7a-d0c3-4db5-aa40-74e434665d57", "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/74524f7a-d0c3-4db5-aa40-74e434665d57", "rel": "self"}, {"href": "http://localhost/nodes/74524f7a-d0c3-4db5-aa40-74e434665d57", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/74524f7a-d0c3-4db5-aa40-74e434665d57/ports", "rel": "self"}, {"href": "http://localhost/nodes/74524f7a-d0c3-4db5-aa40-74e434665d57/ports", "rel": "bookmark"}]} GET /v1/nodes/74524f7a-d0c3-4db5-aa40-74e434665d57 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-730d286e-542f-4bf1-8d66-88554e0abd46 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "74524f7a-d0c3-4db5-aa40-74e434665d57", "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/74524f7a-d0c3-4db5-aa40-74e434665d57", "rel": "self"}, {"href": "http://localhost/nodes/74524f7a-d0c3-4db5-aa40-74e434665d57", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/74524f7a-d0c3-4db5-aa40-74e434665d57/ports", "rel": "self"}, {"href": "http://localhost/nodes/74524f7a-d0c3-4db5-aa40-74e434665d57/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.025893s] ... 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-a55905be-7509-453f-879c-1d29e78a7332 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_allocation.TestPost.test_backfill_node_not_found [0.059980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cb65e031-e1ad-4c38-9efc-98ea92448cc5', 'owner': None, 'node': 'c54301f5-0ca3-4d2c-b6c0-e56743707339'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ab358500-ce70-4737-982c-2933c67f2fc9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node c54301f5-0ca3-4d2c-b6c0-e56743707339 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.039730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-beaf9eda-5f8f-45e8-9a40-29991ab6920e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0f499b79-18eb-41de-9049-62f4e56ddf5e", "created_at": "2025-05-30T17:31:44.341736+00:00", "updated_at": "2025-05-30T17:31:44.351550+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e", "rel": "self"}, {"href": "http://localhost/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e/nodes", "rel": "bookmark"}]]} GET /v1/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15baa725-2b46-424c-adc6-4fd3f552207f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0f499b79-18eb-41de-9049-62f4e56ddf5e", "created_at": "2025-05-30T17:31:44.341736+00:00", "updated_at": "2025-05-30T17:31:44.351550+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e", "rel": "self"}, {"href": "http://localhost/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0f499b79-18eb-41de-9049-62f4e56ddf5e/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.029770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f125b46f-8e9e-437a-a164-689804d0796d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"links": [{"href": "http://localhost/v1/deploy_templates/2970b646-8c41-4550-a6a9-3b683426ff41", "rel": "self"}, {"href": "http://localhost/deploy_templates/2970b646-8c41-4550-a6a9-3b683426ff41", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.032063s] ... 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-d6e258e4-c264-4abf-87c7-8db15485277b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPost.test_create_node_chassis_uuid_not_found [0.065144s] ... 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-a62f4ba6-3139-4ad8-98a9-a61aadb025e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.029453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2d407fa-6445-4c5e-ab85-8c47eb546724 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": []} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.081111s] ... 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-3e2a5c13-253b-4c0a-8c79-507b01018302 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.398506+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-dc932257-6af5-4e2c-8968-14a77471a89b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.398506+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"}]]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.023889s] ... 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.TestPost.test_backfill_with_name [0.055172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8cb5b27a-1993-4ff5-acbd-2912578e732c', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8cb5b27a-1993-4ff5-acbd-2912578e732c Openstack-Request-Id: req-f19af42b-a682-4371-b0f5-2af4d8b442ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "8cb5b27a-1993-4ff5-acbd-2912578e732c", "created_at": "2025-05-30T17:31:44.442631+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/8cb5b27a-1993-4ff5-acbd-2912578e732c", "rel": "self"}, {"href": "http://localhost/allocations/8cb5b27a-1993-4ff5-acbd-2912578e732c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/8cb5b27a-1993-4ff5-acbd-2912578e732c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02767e53-a8f4-4ad4-8f02-1e9c8109747b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "8cb5b27a-1993-4ff5-acbd-2912578e732c", "created_at": "2025-05-30T17:31:44.442631+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/8cb5b27a-1993-4ff5-acbd-2912578e732c", "rel": "self"}, {"href": "http://localhost/allocations/8cb5b27a-1993-4ff5-acbd-2912578e732c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.033050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6543dd07-2146-4685-b2a9-89f280bf353d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "0bf2851a-aedc-4c27-8531-6e34005b4cee", "links": [{"href": "http://localhost/v1/deploy_templates/0bf2851a-aedc-4c27-8531-6e34005b4cee", "rel": "self"}, {"href": "http://localhost/deploy_templates/0bf2851a-aedc-4c27-8531-6e34005b4cee", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "4c00eaa8-55b0-4c51-818f-f48be6573478", "links": [{"href": "http://localhost/v1/deploy_templates/4c00eaa8-55b0-4c51-818f-f48be6573478", "rel": "self"}, {"href": "http://localhost/deploy_templates/4c00eaa8-55b0-4c51-818f-f48be6573478", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "75222605-8ef5-4512-9562-fe7fc5363303", "links": [{"href": "http://localhost/v1/deploy_templates/75222605-8ef5-4512-9562-fe7fc5363303", "rel": "self"}, {"href": "http://localhost/deploy_templates/75222605-8ef5-4512-9562-fe7fc5363303", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.092533s] ... 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-c6dca5b7-785d-459d-868a-d7d3604620f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.483686+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-1cb3f844-1d2b-4c94-96f3-34eae2446ebb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.483686+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.044212s] ... 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/a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d Openstack-Request-Id: req-f3054c1b-4f44-4a83-b097-c736de52586e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d", "created_at": "2025-05-30T17:31:44.487634+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/a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d", "rel": "self"}, {"href": "http://localhost/allocations/a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93013cb9-ff26-44be-a2bf-cac7499faedb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d", "created_at": "2025-05-30T17:31:44.487634+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/a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d", "rel": "self"}, {"href": "http://localhost/allocations/a7c4937d-26cc-4b1c-b8c4-ab0f16e5629d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.029879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3c47348-caec-4102-869a-9e9cd96496bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/eac7358f-63d8-4a3f-bf1a-bb48df9186fc", "rel": "self"}, {"href": "http://localhost/deploy_templates/eac7358f-63d8-4a3f-bf1a-bb48df9186fc", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/107e285c-3a6a-4f6e-9785-c14ed3d04f0d", "rel": "self"}, {"href": "http://localhost/deploy_templates/107e285c-3a6a-4f6e-9785-c14ed3d04f0d", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=107e285c-3a6a-4f6e-9785-c14ed3d04f0d"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.028356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/32782dcc-1abf-4b20-83fe-2e6d205ebd25?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-10110e79-9db2-48d3-a13c-b8110535be90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.037203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ddf30656-cb7b-4538-9f4f-97165cf8826d', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/ddf30656-cb7b-4538-9f4f-97165cf8826d Openstack-Request-Id: req-e52f2b96-979e-4634-8a5f-b42d930929e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ddf30656-cb7b-4538-9f4f-97165cf8826d", "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/ddf30656-cb7b-4538-9f4f-97165cf8826d", "rel": "self"}, {"href": "http://localhost/allocations/ddf30656-cb7b-4538-9f4f-97165cf8826d", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/ddf30656-cb7b-4538-9f4f-97165cf8826d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7220d750-7222-414e-a27b-59dba997c6f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ddf30656-cb7b-4538-9f4f-97165cf8826d", "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/ddf30656-cb7b-4538-9f4f-97165cf8826d", "rel": "self"}, {"href": "http://localhost/allocations/ddf30656-cb7b-4538-9f4f-97165cf8826d", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.105839s] ... 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-c5a0ad63-40ee-4bfd-9481-1ba0b8883b41 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.035001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4261c954-c4f7-44e4-9afe-e420086fb3d7', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa1fba56-0e2b-4f37-aa9b-e7bedf0fad5f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.075919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/0d85c19e-7ddf-4504-b52e-87275cc5e511 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56da552d-dc95-45cc-bcab-941716622886 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0d85c19e-7ddf-4504-b52e-87275cc5e511", "created_at": "2025-05-30T17:31:44.602819+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0d85c19e-7ddf-4504-b52e-87275cc5e511", "rel": "self"}, {"href": "http://localhost/deploy_templates/0d85c19e-7ddf-4504-b52e-87275cc5e511", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.035222s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8912894b-4608-4fda-824a-1fec485b065c', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1327741f-d968-4467-8603-b3817f2c92f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none [0.130445s] ... 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-4d900cf8-f654-4548-bb86-c410d0592374 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.573259+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-ef0b3dcd-beee-4f77-93c4-e390df7822a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.573259+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-61bc7b26-cffc-42ec-9fb5-7dc93675901d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.573259+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.089740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/6caf5f1a-5e15-48a3-91be-562201174dd6 WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-db4817dc-c86a-4376-8d89-33f9fe88d3b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 6caf5f1a-5e15-48a3-91be-562201174dd6 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.038964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a123e49a-4526-4bb9-ab55-207c7ee44c4f', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/a123e49a-4526-4bb9-ab55-207c7ee44c4f Openstack-Request-Id: req-3f3e0404-b2b1-4b52-886d-699aaab03d3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a123e49a-4526-4bb9-ab55-207c7ee44c4f", "created_at": "2025-05-30T17:31:44.646875+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/a123e49a-4526-4bb9-ab55-207c7ee44c4f", "rel": "self"}, {"href": "http://localhost/allocations/a123e49a-4526-4bb9-ab55-207c7ee44c4f", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/a123e49a-4526-4bb9-ab55-207c7ee44c4f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc18b70a-25e7-4119-a788-90c17855c5aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a123e49a-4526-4bb9-ab55-207c7ee44c4f", "created_at": "2025-05-30T17:31:44.646875+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/a123e49a-4526-4bb9-ab55-207c7ee44c4f", "rel": "self"}, {"href": "http://localhost/allocations/a123e49a-4526-4bb9-ab55-207c7ee44c4f", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.064027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/1d38a36e-e7e7-47b1-b7e8-ea5b4d361fd5?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c023585c-6451-4afd-815b-f1ec05e53554 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/1d38a36e-e7e7-47b1-b7e8-ea5b4d361fd5", "rel": "self"}, {"href": "http://localhost/deploy_templates/1d38a36e-e7e7-47b1-b7e8-ea5b4d361fd5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.045350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '98533da9-eb9e-4f72-bc68-eb4701eb3b54', 'owner': None} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b0d31333-644f-46f4-849e-311005e43cfa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.083728s] ... 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-63636b3a-7cdf-49fd-803e-5b588a7201eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-78b66a5d-448d-4dc4-acd4-e65447e0d93a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.057621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/79287a4a-d498-4505-acd6-3940e6d748ef 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.TestPost.test_create_allocation_generate_uuid [0.038370s] ... 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/5f908580-80b2-4286-b993-8081477fa004 Openstack-Request-Id: req-fbfac1eb-57cf-471a-a173-45a9c8b95228 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "5f908580-80b2-4286-b993-8081477fa004", "created_at": "2025-05-30T17:31:44.733724+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/5f908580-80b2-4286-b993-8081477fa004", "rel": "self"}, {"href": "http://localhost/allocations/5f908580-80b2-4286-b993-8081477fa004", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/5f908580-80b2-4286-b993-8081477fa004 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9f04598-620b-40c6-825f-f7b973e2313f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "5f908580-80b2-4286-b993-8081477fa004", "created_at": "2025-05-30T17:31:44.733724+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/5f908580-80b2-4286-b993-8081477fa004", "rel": "self"}, {"href": "http://localhost/allocations/5f908580-80b2-4286-b993-8081477fa004", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.035484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/b85e3379-10dd-4977-a76c-d7d42f4ad94b.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78bfc265-845e-43fc-9615-573131429065 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b85e3379-10dd-4977-a76c-d7d42f4ad94b", "created_at": "2025-05-30T17:31:44.762551+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b85e3379-10dd-4977-a76c-d7d42f4ad94b", "rel": "self"}, {"href": "http://localhost/deploy_templates/b85e3379-10dd-4977-a76c-d7d42f4ad94b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.032570s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '523b5851-b7cc-4b83-8dc2-d665cf2f9c1c', '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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.153321s] ... 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-734e769a-53bc-4747-a521-50626db481fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:44.756027+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-7d69d560-f0fe-482b-beb5-99f47471b5a1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:44.756027+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_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.061811s] ... 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-c8a0de7b-4a33-413c-876e-b567a4c20a35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.773623+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-9292a62a-a46b-46ca-9aac-53344a58a201 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:44.773623+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"}]]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json_not_found [0.028320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/8129bec2-2d56-4122-8e74-c2acc667ba17.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-59940807-24af-48f8-ba81-e2847bd9bb9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 8129bec2-2d56-4122-8e74-c2acc667ba17.json could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.032822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0d8a26ea-4807-46b7-9986-d18dd4fb6712', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67c3fb59-db1a-407e-bfcc-f89ea7df4c90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.033388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/b43f59f3-0b1c-4509-ae7a-6e03fbbaf752 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9619ece9-04c3-48bd-8dea-35931caad740 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b43f59f3-0b1c-4509-ae7a-6e03fbbaf752", "created_at": "2025-05-30T17:31:44.822013+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b43f59f3-0b1c-4509-ae7a-6e03fbbaf752", "rel": "self"}, {"href": "http://localhost/deploy_templates/b43f59f3-0b1c-4509-ae7a-6e03fbbaf752", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.029885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': 'f11bf54d-db67-43a8-917e-1ec0cc2046e9', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b42393ef-4487-44d2-8e7e-a04173a4cee6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_chassis.TestPost.test_create_chassis_error [0.059306s] ... 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-4a15e879-9721-4f97-8f89-21fc46222317 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPost.test_create_node_description_oversize [0.074784s] ... 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-8e4ace7e-cbe8-4080-8d34-6e7e8b68268e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781 234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.033606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '88c406c1-b6b8-4a7b-a7cd-18b0a266d236', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c3dad919-f054-4482-a262-54b8e2d1d803 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.047057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b8bb1bf-b865-4245-b5b4-5b9a16919195 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "72464980-38eb-4478-bd11-c7ef90218d6e", "created_at": "2025-05-30T17:31:44.861997+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e", "rel": "self"}, {"href": "http://localhost/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56dcc836-5573-458d-b12f-34b539d60608 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "72464980-38eb-4478-bd11-c7ef90218d6e", "created_at": "2025-05-30T17:31:44.861997+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e", "rel": "self"}, {"href": "http://localhost/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a0b35af-1b75-47b5-873b-54963dbcae2c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "72464980-38eb-4478-bd11-c7ef90218d6e", "created_at": "2025-05-30T17:31:44.861997+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e", "rel": "self"}, {"href": "http://localhost/deploy_templates/72464980-38eb-4478-bd11-c7ef90218d6e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.043024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c091980a-4fb8-48bc-ad1e-a887bbf38925', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/c091980a-4fb8-48bc-ad1e-a887bbf38925 Openstack-Request-Id: req-ada72bb0-e8bc-4ade-8ca2-514efe130df7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c091980a-4fb8-48bc-ad1e-a887bbf38925", "created_at": "2025-05-30T17:31:44.912085+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/c091980a-4fb8-48bc-ad1e-a887bbf38925", "rel": "self"}, {"href": "http://localhost/allocations/c091980a-4fb8-48bc-ad1e-a887bbf38925", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/c091980a-4fb8-48bc-ad1e-a887bbf38925 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-841c859a-673f-4a44-9d83-c0d343db751a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c091980a-4fb8-48bc-ad1e-a887bbf38925", "created_at": "2025-05-30T17:31:44.912085+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/c091980a-4fb8-48bc-ad1e-a887bbf38925", "rel": "self"}, {"href": "http://localhost/allocations/c091980a-4fb8-48bc-ad1e-a887bbf38925", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.073794s] ... 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/795d2cb7-3152-40f7-ac85-e231826831bf Openstack-Request-Id: req-708dffe1-d406-4968-b92a-108ade50936d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "795d2cb7-3152-40f7-ac85-e231826831bf", "created_at": "2025-05-30T17:31:44.908595+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/795d2cb7-3152-40f7-ac85-e231826831bf", "rel": "self"}, {"href": "http://localhost/chassis/795d2cb7-3152-40f7-ac85-e231826831bf", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/795d2cb7-3152-40f7-ac85-e231826831bf/nodes", "rel": "self"}, {"href": "http://localhost/chassis/795d2cb7-3152-40f7-ac85-e231826831bf/nodes", "rel": "bookmark"}]]} GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a7d0a70-3ceb-419a-afda-b2bead831061 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "795d2cb7-3152-40f7-ac85-e231826831bf", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/795d2cb7-3152-40f7-ac85-e231826831bf", "rel": "self"}, {"href": "http://localhost/chassis/795d2cb7-3152-40f7-ac85-e231826831bf", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.068505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1eb3fffa-a41a-4b33-9ce1-b38bef5af24f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "118c1b69-c5a5-4ca5-b4fd-969d5e310bf2", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/118c1b69-c5a5-4ca5-b4fd-969d5e310bf2", "rel": "self"}, {"href": "http://localhost/deploy_templates/118c1b69-c5a5-4ca5-b4fd-969d5e310bf2", "rel": "bookmark"}]}, {"uuid": "365392a1-c024-41f0-8dcc-d9233ac66c39", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/365392a1-c024-41f0-8dcc-d9233ac66c39", "rel": "self"}, {"href": "http://localhost/deploy_templates/365392a1-c024-41f0-8dcc-d9233ac66c39", "rel": "bookmark"}]}, {"uuid": "270e59ee-aa14-4b22-876a-3a1d5c749d1a", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/270e59ee-aa14-4b22-876a-3a1d5c749d1a", "rel": "self"}, {"href": "http://localhost/deploy_templates/270e59ee-aa14-4b22-876a-3a1d5c749d1a", "rel": "bookmark"}]}, {"uuid": "63214a6f-a404-4a8e-a6dc-a85863c78d0f", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/63214a6f-a404-4a8e-a6dc-a85863c78d0f", "rel": "self"}, {"href": "http://localhost/deploy_templates/63214a6f-a404-4a8e-a6dc-a85863c78d0f", "rel": "bookmark"}]}, {"uuid": "9124e529-8b10-40cb-8334-24c7dce38b45", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/9124e529-8b10-40cb-8334-24c7dce38b45", "rel": "self"}, {"href": "http://localhost/deploy_templates/9124e529-8b10-40cb-8334-24c7dce38b45", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.036561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '3167a0e3-0e90-4163-9587-52cdbf404033', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d57ca8c0-051f-470c-b4ac-a9216a68eee1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off [0.111246s] ... 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-210b5040-bfdc-4ff4-a104-2f659c5ef176 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:44.935605+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-bf6e232e-3336-401a-a531-dc3d27483527 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:44.935605+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.030354s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3585ade-f15f-43eb-a769-608b5712a229 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "424925f3-7dfa-499c-8ffe-9c6736b81f37", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/424925f3-7dfa-499c-8ffe-9c6736b81f37", "rel": "self"}, {"href": "http://localhost/deploy_templates/424925f3-7dfa-499c-8ffe-9c6736b81f37", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.062471s] ... 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-886e0ce8-5f19-4037-968e-1d2aa341a7dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.034205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/f8190327-73ee-49f5-adb8-a7f5f5279797 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8dd369fd-aef8-4a33-8f43-aad9ded3d463 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f8190327-73ee-49f5-adb8-a7f5f5279797", "created_at": "2025-05-30T17:31:45.006687+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f8190327-73ee-49f5-adb8-a7f5f5279797", "rel": "self"}, {"href": "http://localhost/deploy_templates/f8190327-73ee-49f5-adb8-a7f5f5279797", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner [0.058128s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0bc98e6b-776d-45f4-bf75-af959b04496c', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0bc98e6b-776d-45f4-bf75-af959b04496c Openstack-Request-Id: req-d986652d-653f-4e5c-9561-ffecb1a720df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0bc98e6b-776d-45f4-bf75-af959b04496c", "created_at": "2025-05-30T17:31:45.008196+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/0bc98e6b-776d-45f4-bf75-af959b04496c", "rel": "self"}, {"href": "http://localhost/allocations/0bc98e6b-776d-45f4-bf75-af959b04496c", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/0bc98e6b-776d-45f4-bf75-af959b04496c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-209cad1d-05d5-499b-a385-c66d66463f02 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0bc98e6b-776d-45f4-bf75-af959b04496c", "created_at": "2025-05-30T17:31:45.008196+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/0bc98e6b-776d-45f4-bf75-af959b04496c", "rel": "self"}, {"href": "http://localhost/allocations/0bc98e6b-776d-45f4-bf75-af959b04496c", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.037733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d540949e-ac25-4d3f-ab0e-6c42e0d88616 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "80f66321-6d91-4f77-be58-7e92b4ef5a89", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/80f66321-6d91-4f77-be58-7e92b4ef5a89", "rel": "self"}, {"href": "http://localhost/deploy_templates/80f66321-6d91-4f77-be58-7e92b4ef5a89", "rel": "bookmark"}]}, {"uuid": "c7a2efbe-4544-4d1f-a528-ce57eca4cc77", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/c7a2efbe-4544-4d1f-a528-ce57eca4cc77", "rel": "self"}, {"href": "http://localhost/deploy_templates/c7a2efbe-4544-4d1f-a528-ce57eca4cc77", "rel": "bookmark"}]}, {"uuid": "d1402a61-22a5-4f11-97df-f7537c2bd55a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d1402a61-22a5-4f11-97df-f7537c2bd55a", "rel": "self"}, {"href": "http://localhost/deploy_templates/d1402a61-22a5-4f11-97df-f7537c2bd55a", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled [0.051788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '03600856-8896-4be6-8f49-f39128be92f8', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/03600856-8896-4be6-8f49-f39128be92f8 Openstack-Request-Id: req-b16c0770-ef51-4b33-97e8-9c9f579febe0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "03600856-8896-4be6-8f49-f39128be92f8", "created_at": "2025-05-30T17:31:45.062697+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/03600856-8896-4be6-8f49-f39128be92f8", "rel": "self"}, {"href": "http://localhost/allocations/03600856-8896-4be6-8f49-f39128be92f8", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/03600856-8896-4be6-8f49-f39128be92f8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68fbfd07-ce48-4743-8f53-6df9eab0c5b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "03600856-8896-4be6-8f49-f39128be92f8", "created_at": "2025-05-30T17:31:45.062697+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/03600856-8896-4be6-8f49-f39128be92f8", "rel": "self"}, {"href": "http://localhost/allocations/03600856-8896-4be6-8f49-f39128be92f8", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.074446s] ... 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-4f08f09c-1499-4411-bf1c-ffba7166c7fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.031427s] ... 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-27fecd64-a002-44aa-907f-8d96c513546d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "bf5b3dbd-08c2-40fd-95ca-3658b408a1b1", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/bf5b3dbd-08c2-40fd-95ca-3658b408a1b1", "rel": "self"}, {"href": "http://localhost/deploy_templates/bf5b3dbd-08c2-40fd-95ca-3658b408a1b1", "rel": "bookmark"}]}, {"uuid": "f45f451e-e509-47ad-b434-3972c13fdc4c", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/f45f451e-e509-47ad-b434-3972c13fdc4c", "rel": "self"}, {"href": "http://localhost/deploy_templates/f45f451e-e509-47ad-b434-3972c13fdc4c", "rel": "bookmark"}]}, {"uuid": "839133b1-ac3f-4f54-9f10-f53d41aa1980", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/839133b1-ac3f-4f54-9f10-f53d41aa1980", "rel": "self"}, {"href": "http://localhost/deploy_templates/839133b1-ac3f-4f54-9f10-f53d41aa1980", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed [0.033803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f382256d-ea9f-4803-b9f6-ddb7a7c45283', 'owner': '12345'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-df41f383-9f2c-439b-9f7b-1fcc4b8b12eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListDeployTemplates.test_sort_key_invalid [0.027738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2f1388d3-7c94-4d4c-8942-97902adbeeeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-7054777c-ed41-4115-a768-d566320bf9cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-3c6d427f-695b-4439-92d0-927bfc22b688 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off_old_api_version [0.166872s] ... 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-48c3cd66-4370-4003-a7fc-64bafae9432b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.034937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5c6f960-0f35-4b1b-9e4c-6ecefac1f7ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-95eb8858-111f-4f95-b96b-ef621d9848e8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-3fc18098-7ba8-4b86-9dbd-8c2e8c04043c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.073635s] ... 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-85f20c16-79d7-414b-8423-15998b7d6f0c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.143815+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-fd979f9a-40ce-4a0d-a9a8-35e03282fa73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.143815+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"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.052189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '7b0a947d-f8ea-45e7-90d9-9e626911a2e1', 'owner': '12345'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cd2f81a4-e35b-4c3f-ada6-ffa750600859 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.030547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fe5ee9c2-bfb2-48fc-8bc7-4a1af577fca7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.022993s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dfdf2ab7-f544-4cf7-af67-3d62aedf2435 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.054253s] ... 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-29c2c4cf-64db-4b01-a20f-bc3589b67837 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.199297+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-69d2869e-90b8-492a-b55b-ca7ff074e7b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.199297+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"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.046841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '88341801-7d24-493d-8925-541ad85f97bb', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-082f8be4-d1b7-4bee-8bce-bf671843090d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.036740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37188075-e475-4325-b37e-ceb1df2239d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.123612s] ... 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-cfb876d8-a6b8-4ca8-9ff5-807179b8a00b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.240978+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-33ebd5db-8096-429d-ab3a-c059582cbd58 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.240978+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.027427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e9dc316c-5df6-490e-b92d-c432c851b3d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.079839s] ... 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-2f3928c4-f444-47fe-a7c2-74192b426706 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_event.TestEventValidator.test_event_missing_madatory_field [0.021673s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type [0.018495s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.079223s] ... 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': 'e58c1c53-496c-49f3-bb0e-70d03b7564bd', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/e58c1c53-496c-49f3-bb0e-70d03b7564bd Openstack-Request-Id: req-5ff591b7-583c-400e-aa01-4a81384c3553 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e58c1c53-496c-49f3-bb0e-70d03b7564bd", "created_at": "2025-05-30T17:31:45.288086+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/e58c1c53-496c-49f3-bb0e-70d03b7564bd", "rel": "self"}, {"href": "http://localhost/allocations/e58c1c53-496c-49f3-bb0e-70d03b7564bd", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e58c1c53-496c-49f3-bb0e-70d03b7564bd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ed27590-8d1e-44a8-87da-30b5b87e569e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e58c1c53-496c-49f3-bb0e-70d03b7564bd", "created_at": "2025-05-30T17:31:45.288086+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/e58c1c53-496c-49f3-bb0e-70d03b7564bd", "rel": "self"}, {"href": "http://localhost/allocations/e58c1c53-496c-49f3-bb0e-70d03b7564bd", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.032569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0052057-ccbd-4e68-9a10-f9c656f2b694 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"conductors": [{"hostname": "7ccd884e-fdc4-4aa4-962d-2ef6487ed409", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/7ccd884e-fdc4-4aa4-962d-2ef6487ed409", "rel": "self"}, {"href": "http://localhost/conductors/7ccd884e-fdc4-4aa4-962d-2ef6487ed409", "rel": "bookmark"}], "alive": true}, {"hostname": "db65bcf8-0c5b-459c-99a1-c6b9a671bd82", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/db65bcf8-0c5b-459c-99a1-c6b9a671bd82", "rel": "self"}, {"href": "http://localhost/conductors/db65bcf8-0c5b-459c-99a1-c6b9a671bd82", "rel": "bookmark"}], "alive": true}, {"hostname": "641e72fe-3f0d-4883-ba2c-8eb5eb94c3ce", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/641e72fe-3f0d-4883-ba2c-8eb5eb94c3ce", "rel": "self"}, {"href": "http://localhost/conductors/641e72fe-3f0d-4883-ba2c-8eb5eb94c3ce", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=641e72fe-3f0d-4883-ba2c-8eb5eb94c3ce"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.020256s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.029676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8473464b-b2ae-493f-b2f2-649e06719b70 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"conductors": [{"hostname": "bccd4f49-166e-4d19-af79-d481f7c24754", "links": [{"href": "http://localhost/v1/conductors/bccd4f49-166e-4d19-af79-d481f7c24754", "rel": "self"}, {"href": "http://localhost/conductors/bccd4f49-166e-4d19-af79-d481f7c24754", "rel": "bookmark"}], "alive": true}, {"hostname": "f87686e1-201e-4207-bf88-0322ae81ca0c", "links": [{"href": "http://localhost/v1/conductors/f87686e1-201e-4207-bf88-0322ae81ca0c", "rel": "self"}, {"href": "http://localhost/conductors/f87686e1-201e-4207-bf88-0322ae81ca0c", "rel": "bookmark"}], "alive": true}, {"hostname": "b3762d12-a26c-4f7a-9355-09f81a02a322", "links": [{"href": "http://localhost/v1/conductors/b3762d12-a26c-4f7a-9355-09f81a02a322", "rel": "self"}, {"href": "http://localhost/conductors/b3762d12-a26c-4f7a-9355-09f81a02a322", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=b3762d12-a26c-4f7a-9355-09f81a02a322"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.022656s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_default_conductor_group [0.095932s] ... 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-cc3585e6-8e5c-40ee-a9b2-2465898c4232 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.336631+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-7256d3cb-7ff6-469e-9d94-843cd9c9a740 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.336631+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.028144s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.031853s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c0738c7-115a-4563-8656-2bad9672cb47 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"conductors": [{"hostname": "65bb5704-fee0-4103-9c75-a40b6b50444f", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/65bb5704-fee0-4103-9c75-a40b6b50444f", "rel": "self"}, {"href": "http://localhost/conductors/65bb5704-fee0-4103-9c75-a40b6b50444f", "rel": "bookmark"}], "alive": true}, {"hostname": "7282c934-ca88-4250-bbfc-3fd85574c766", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/7282c934-ca88-4250-bbfc-3fd85574c766", "rel": "self"}, {"href": "http://localhost/conductors/7282c934-ca88-4250-bbfc-3fd85574c766", "rel": "bookmark"}], "alive": true}, {"hostname": "4d227e0a-b2d1-4270-b5a3-bc7d0844fbed", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/4d227e0a-b2d1-4270-b5a3-bc7d0844fbed", "rel": "self"}, {"href": "http://localhost/conductors/4d227e0a-b2d1-4270-b5a3-bc7d0844fbed", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=4d227e0a-b2d1-4270-b5a3-bc7d0844fbed"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.031301s] ... 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-e37c3a20-41b7-4fd2-aad7-56af9cf31096 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.032613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-adf45080-a777-4562-ab06-da821d61f2fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"conductors": []} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.103108s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['node-1', '93994377-a3a7-440d-9739-4c5656bbc2b4'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cb45279d-ba6b-42fd-ad5e-433726dd8ca0', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/cb45279d-ba6b-42fd-ad5e-433726dd8ca0 Openstack-Request-Id: req-4e3345e1-b345-4d51-9c1b-d545f2b114aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cb45279d-ba6b-42fd-ad5e-433726dd8ca0", "created_at": "2025-05-30T17:31:45.401335+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "93994377-a3a7-440d-9739-4c5656bbc2b4"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/cb45279d-ba6b-42fd-ad5e-433726dd8ca0", "rel": "self"}, {"href": "http://localhost/allocations/cb45279d-ba6b-42fd-ad5e-433726dd8ca0", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/cb45279d-ba6b-42fd-ad5e-433726dd8ca0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8982c7ed-4ebd-4c2b-b259-30221f51d75a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cb45279d-ba6b-42fd-ad5e-433726dd8ca0", "created_at": "2025-05-30T17:31:45.401335+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "93994377-a3a7-440d-9739-4c5656bbc2b4"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/cb45279d-ba6b-42fd-ad5e-433726dd8ca0", "rel": "self"}, {"href": "http://localhost/allocations/cb45279d-ba6b-42fd-ad5e-433726dd8ca0", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.025300s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5e39be14-c59a-4a5e-a2de-d0ca09591168 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.027287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fa0de27-f43c-458b-8cd3-8454c991cf6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}]} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.025682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b87e9b9f-56d0-4f9e-939f-03f3d29ee439 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPost.test_create_node_explicit_network_interface [0.102083s] ... 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-3c088e95-ed58-4700-9196-b5bb57f15a3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-47495cf0-3b79-4095-8da8-e16e6aeeb537 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.026114s] ... 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-63bbb973-6fee-4b6f-897d-8081ce971d39 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.063769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f2ba1f48-1658-4b9c-bc78-878ac30efd74', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f2ba1f48-1658-4b9c-bc78-878ac30efd74 Openstack-Request-Id: req-240db536-8a94-4100-ba81-449b387e14ae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f2ba1f48-1658-4b9c-bc78-878ac30efd74", "created_at": "2025-05-30T17:31:45.471566+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/f2ba1f48-1658-4b9c-bc78-878ac30efd74", "rel": "self"}, {"href": "http://localhost/allocations/f2ba1f48-1658-4b9c-bc78-878ac30efd74", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.025364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12bac131-91df-4314-af79-4742a6bee807 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.488603+00:00", "updated_at": "2025-05-30T17:31:45.488439+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} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.040955s] ... 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-5736ada6-0521-4e8b-82b7-7416aa1d86fc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_old_heartbeat [0.029460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e6e5513-a8cd-4f7f-bde1-9f4334896c32 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.042218s] ... 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-ed4e890b-e97e-4e78-8dd3-d3cafa1e913e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_unregistered [0.030763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6d0bde6-ece0-40a4-b20a-c0b285dde49f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.546845+00:00", "updated_at": "2025-05-30T17:31:45.549069+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} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.061067s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '45570c7e-8bd8-42f0-9f04-b597ee527dda', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/45570c7e-8bd8-42f0-9f04-b597ee527dda Openstack-Request-Id: req-f63735c9-3d9f-44a3-ae85-81e82948f4b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "45570c7e-8bd8-42f0-9f04-b597ee527dda", "created_at": "2025-05-30T17:31:45.540394+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/45570c7e-8bd8-42f0-9f04-b597ee527dda", "rel": "self"}, {"href": "http://localhost/allocations/45570c7e-8bd8-42f0-9f04-b597ee527dda", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/45570c7e-8bd8-42f0-9f04-b597ee527dda WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1f0a3e6-2aa8-4d5e-9668-0fee4df51774 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "45570c7e-8bd8-42f0-9f04-b597ee527dda", "created_at": "2025-05-30T17:31:45.540394+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/45570c7e-8bd8-42f0-9f04-b597ee527dda", "rel": "self"}, {"href": "http://localhost/allocations/45570c7e-8bd8-42f0-9f04-b597ee527dda", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.030791s] ... 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-1aa7ef8a-89d3-4fa9-9faf-89bf1c0a45b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.115758s] ... 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-0c1a6d3e-8e62-46ae-8acc-46069b052aa7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.561189+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-bdf7f962-126d-4c6d-b5f1-c84bab432d57 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:45.561189+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.027365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4661151f-ccb4-489d-83df-cedfd23a6816 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"hostname": "rocky.rocks", "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_conductor.TestListConductors.test_get_one_with_invalid_api [0.022477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9c312edd-0566-429c-9ad4-c741ed6fd845 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.034568s] ... 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-97ae3827-ffa0-40a3-a6b0-52d53bc622e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.050099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '12164c7f-5aba-4eb3-94fe-9d7346a92253', '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_event.TestPost.test_network_port_event_invalid_binding_host_id [0.030219s] ... 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-20e4c77e-4ee7-47b2-aef3-5d3c94dff759 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.037003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d99dec93-c214-4fc4-b849-c4a26d828e7e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.636194+00:00", "updated_at": "2025-05-30T17:31:45.636015+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} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.028597s] ... 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-27054b08-9e54-44d3-b34f-1edf254c9684 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node_uuid_not_allowed [0.059523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4496a62d-8c2b-4e6e-8ae4-bf815ea104be', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-62608df9-20b5-4de6-8434-abd1f7ad4a0c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.111475s] ... 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-187ba9b5-337e-4b59-a6af-15279d307b72 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-3d8eb4d3-4a59-405a-be9b-25c7cd5999a5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.028958s] ... 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-06016ea3-d7c4-4162-924c-705429428923 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_event.TestPost.test_network_port_event_invalid_mac_address [0.026536s] ... 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-9031898a-b037-4600-9e7a-1c923cddcc21 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.068566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c1573384-9f5d-4cff-892e-28f80036ad81', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/c1573384-9f5d-4cff-892e-28f80036ad81 Openstack-Request-Id: req-93e7622b-5ec7-4364-a58c-8545b91a21f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "c1573384-9f5d-4cff-892e-28f80036ad81", "created_at": "2025-05-30T17:31:45.741750+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/c1573384-9f5d-4cff-892e-28f80036ad81", "rel": "self"}, {"href": "http://localhost/allocations/c1573384-9f5d-4cff-892e-28f80036ad81", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/c1573384-9f5d-4cff-892e-28f80036ad81 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1a0fc16-d924-4f85-b5f8-06fb8b8700dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "c1573384-9f5d-4cff-892e-28f80036ad81", "created_at": "2025-05-30T17:31:45.741750+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/c1573384-9f5d-4cff-892e-28f80036ad81", "rel": "self"}, {"href": "http://localhost/allocations/c1573384-9f5d-4cff-892e-28f80036ad81", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_bios_boot_mode [0.074308s] ... 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-e23dce2d-cf2d-481d-91af-eda5dd17e7ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.043416s] ... 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-d44fbc68-a32f-455c-af9e-42d559a1aa1b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.033153s] ... 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-58644d4d-3d24-4def-8f04-0a1fb768b3d5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden [0.055949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '11a0ebb3-11f1-43c2-9606-63649fad52db', 'owner': None} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f1dab73b-fc54-4c6b-9f3e-054d553d7fb5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPost.test_create_node_fails_on_disabled_uefi_boot_mode [0.064942s] ... 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-a62753c7-b847-4d2b-8e41-98738cda3290 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_conductor.TestListConductors.test_links [0.193194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c056d34-dc4b-41bf-a3d2-c4a1e92e7506 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.825006+00:00", "updated_at": "2025-05-30T17:31:45.824793+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-cbd9cd7c-033b-4736-bc3f-39f69c6337a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.825006+00:00", "updated_at": "2025-05-30T17:31:45.824793+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-0987e172-d126-4d53-869e-80a39b34ac19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.825006+00:00", "updated_at": "2025-05-30T17:31:45.824793+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} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.031234s] ... 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-62a97d4b-5bb1-44c0-b665-a81938125fed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_invalid_boot_mode [0.030938s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.037708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6edb2b9-fb23-40f1-9324-80a98e325da4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.862422+00:00", "updated_at": "2025-05-30T17:31:45.862215+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-c8d82f4d-83a2-4872-acf2-ba36560b6cbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.862422+00:00", "updated_at": "2025-05-30T17:31:45.862215+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-a643a391-a74a-4fc0-866f-041c8097409f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:31:45.862422+00:00", "updated_at": "2025-05-30T17:31:45.862215+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} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.028423s] ... 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-6348141f-2109-45f8-b641-f04743f0334b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal [0.066514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a622f403-29c6-4b2d-a979-73b76660e116', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/a622f403-29c6-4b2d-a979-73b76660e116 Openstack-Request-Id: req-37936802-f4f2-4fb2-9625-f9a853eb2b22 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "a622f403-29c6-4b2d-a979-73b76660e116", "created_at": "2025-05-30T17:31:45.864997+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/a622f403-29c6-4b2d-a979-73b76660e116", "rel": "self"}, {"href": "http://localhost/allocations/a622f403-29c6-4b2d-a979-73b76660e116", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/a622f403-29c6-4b2d-a979-73b76660e116 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ab478b7-f2a9-4af4-965b-897f3338b507 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "a622f403-29c6-4b2d-a979-73b76660e116", "created_at": "2025-05-30T17:31:45.864997+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/a622f403-29c6-4b2d-a979-73b76660e116", "rel": "self"}, {"href": "http://localhost/allocations/a622f403-29c6-4b2d-a979-73b76660e116", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_by_uuid [0.033608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/e180bfa8-0675-45c1-a51b-29212534394b GOT Response: 204 No Content Openstack-Request-Id: req-8e34de75-1230-4abf-9ca2-e71927a84c8c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.049264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4121110-936e-497f-b74f-f617e0717455 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}]} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_invalid_api_version [0.028879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/9c36bbe1-9682-4c44-b039-4e216565d6ad 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.077097s] ... 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-579f99ff-f21d-4c4d-baf8-05eea6bdc3e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_empty [0.026494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57257615-b31a-4ca1-847a-bffd5b65d01f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inspection_rules": []} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version [0.077345s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e7afd03d-7e1e-4337-b8bf-18e80215d553'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/e7afd03d-7e1e-4337-b8bf-18e80215d553 Openstack-Request-Id: req-c0e1db52-da20-4643-a238-1e7d0d8ff3e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "e7afd03d-7e1e-4337-b8bf-18e80215d553", "created_at": "2025-05-30T17:31:45.956083+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/e7afd03d-7e1e-4337-b8bf-18e80215d553", "rel": "self"}, {"href": "http://localhost/allocations/e7afd03d-7e1e-4337-b8bf-18e80215d553", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e7afd03d-7e1e-4337-b8bf-18e80215d553 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b93e3ab-b0a9-49bc-a69b-b9775483bcd5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "e7afd03d-7e1e-4337-b8bf-18e80215d553", "created_at": "2025-05-30T17:31:45.956083+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/e7afd03d-7e1e-4337-b8bf-18e80215d553", "rel": "self"}, {"href": "http://localhost/allocations/e7afd03d-7e1e-4337-b8bf-18e80215d553", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.052262s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b113e76a-ee6c-43f8-8357-001d0ae37c8f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"conductors": [{"created_at": "2025-05-30T17:31:45.960952+00:00", "updated_at": "2025-05-30T17:31:45.960770+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-30T17:31:45.965065+00:00", "updated_at": "2025-05-30T17:31:45.964942+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}]} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all [0.026379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-924672f3-c12a-4663-ac82-f9bc70469aa1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inspection_rules": [{"uuid": "ec27e3cb-8750-4ab2-8760-7e2ba144f480", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/ec27e3cb-8750-4ab2-8760-7e2ba144f480", "rel": "self"}, {"href": "http://localhost/inspection/ec27e3cb-8750-4ab2-8760-7e2ba144f480", "rel": "bookmark"}]}, {"uuid": "d6d0f0e4-7b95-4592-8e18-bab512ad3b13", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/d6d0f0e4-7b95-4592-8e18-bab512ad3b13", "rel": "self"}, {"href": "http://localhost/inspection/d6d0f0e4-7b95-4592-8e18-bab512ad3b13", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.026481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2b00982f-4ae6-4e7f-9778-5ab2474a1346 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPost.test_create_node_invalid_chassis [0.074587s] ... 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-8a575359-5999-4549-b54b-b08b28033d5b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all_invalid_api_version [0.031142s] ... 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\"}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one [0.026315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/e4a17d9e-a806-407e-860a-5a4a202746fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05012255-d805-423b-b5f3-ad4105b6298b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e4a17d9e-a806-407e-860a-5a4a202746fc", "created_at": "2025-05-30T17:31:46.046413+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/e4a17d9e-a806-407e-860a-5a4a202746fc", "rel": "self"}, {"href": "http://localhost/inspection/e4a17d9e-a806-407e-860a-5a4a202746fc", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.060047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55b0ac29-5c4c-43fb-9ef6-7a970f1e5085 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"conductors": [{"hostname": "18ffed19-c719-4ef3-bd6f-484faad2844c", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/18ffed19-c719-4ef3-bd6f-484faad2844c", "rel": "self"}, {"href": "http://localhost/conductors/18ffed19-c719-4ef3-bd6f-484faad2844c", "rel": "bookmark"}], "alive": true}, {"hostname": "58196cb6-61ab-4a72-be33-e82427c4722f", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/58196cb6-61ab-4a72-be33-e82427c4722f", "rel": "self"}, {"href": "http://localhost/conductors/58196cb6-61ab-4a72-be33-e82427c4722f", "rel": "bookmark"}], "alive": true}, {"hostname": "93f2117b-8d12-4948-84ec-6aca37106cad", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/93f2117b-8d12-4948-84ec-6aca37106cad", "rel": "self"}, {"href": "http://localhost/conductors/93f2117b-8d12-4948-84ec-6aca37106cad", "rel": "bookmark"}], "alive": true}, {"hostname": "cfc04a0f-cf94-4014-abb5-ef4ae1bd8c72", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/cfc04a0f-cf94-4014-abb5-ef4ae1bd8c72", "rel": "self"}, {"href": "http://localhost/conductors/cfc04a0f-cf94-4014-abb5-ef4ae1bd8c72", "rel": "bookmark"}], "alive": true}, {"hostname": "fc73bdc5-5c23-487b-8a00-65a0b34ac07a", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/fc73bdc5-5c23-487b-8a00-65a0b34ac07a", "rel": "self"}, {"href": "http://localhost/conductors/fc73bdc5-5c23-487b-8a00-65a0b34ac07a", "rel": "bookmark"}], "alive": true}]} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one_invalid_api_version [0.024769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/4c385e1e-18a5-4088-82d8-757125c9f1ac 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_conductor.TestListConductors.test_sort_key_invalid [0.026182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-563ca7bd-cf7a-4f0d-8080-f86d058484f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-9af77d43-476f-4d11-bbb9-c670fd0a6fa8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.095276s] ... 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-09242bc2-842a-4060-848f-a257f8c4ae29 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_rule_data [0.037163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'd1358b26-8f81-44bf-a365-9c655ae7f10f', '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/d1358b26-8f81-44bf-a365-9c655ae7f10f Openstack-Request-Id: req-ee7a4d4c-f25d-4435-8f29-651c572fae3d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "d1358b26-8f81-44bf-a365-9c655ae7f10f", "created_at": "2025-05-30T17:31:46.108882+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/d1358b26-8f81-44bf-a365-9c655ae7f10f", "rel": "self"}, {"href": "http://localhost/inspection/d1358b26-8f81-44bf-a365-9c655ae7f10f", "rel": "bookmark"}]} GET /v1/inspection_rules/d1358b26-8f81-44bf-a365-9c655ae7f10f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bdb31cd9-0951-4958-a428-99971663527b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "d1358b26-8f81-44bf-a365-9c655ae7f10f", "created_at": "2025-05-30T17:31:46.108882+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/d1358b26-8f81-44bf-a365-9c655ae7f10f", "rel": "self"}, {"href": "http://localhost/inspection/d1358b26-8f81-44bf-a365-9c655ae7f10f", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.056087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/cc62a19e-b14e-4fbf-8a99-44cb8e0a1161 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-265202d0-70d6-43a1-a7a3-ad548c462db7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cc62a19e-b14e-4fbf-8a99-44cb8e0a1161", "created_at": "2025-05-30T17:31:46.113998+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/cc62a19e-b14e-4fbf-8a99-44cb8e0a1161", "rel": "self"}, {"href": "http://localhost/deploy_templates/cc62a19e-b14e-4fbf-8a99-44cb8e0a1161", "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}]} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_sensitive_rule_hides_data [0.045714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'e7b8fae3-3f92-47b8-92ec-f656b8a623ea', '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/e7b8fae3-3f92-47b8-92ec-f656b8a623ea Openstack-Request-Id: req-b39aba44-f350-4505-bc87-7d5fcf550507 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e7b8fae3-3f92-47b8-92ec-f656b8a623ea", "created_at": "2025-05-30T17:31:46.153648+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/e7b8fae3-3f92-47b8-92ec-f656b8a623ea", "rel": "self"}, {"href": "http://localhost/inspection/e7b8fae3-3f92-47b8-92ec-f656b8a623ea", "rel": "bookmark"}]} GET /v1/inspection_rules/e7b8fae3-3f92-47b8-92ec-f656b8a623ea WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5d93070-179b-431b-b787-4eb8c414fff8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e7b8fae3-3f92-47b8-92ec-f656b8a623ea", "created_at": "2025-05-30T17:31:46.153648+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/e7b8fae3-3f92-47b8-92ec-f656b8a623ea", "rel": "self"}, {"href": "http://localhost/inspection/e7b8fae3-3f92-47b8-92ec-f656b8a623ea", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.029876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/dc816a3d-db76-4c11-9193-a305bc19c4c7 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-139eb126-9a0e-453a-9bb4-c2af14812a2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.073905s] ... 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-56689e19-057c-444d-a137-7ac948a8f64f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.030281s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e0300ac1-a7c0-45ba-ab86-f1d0772bb5fa 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-4b2b3235-5a52-4e0c-b7a9-88ab6e3ee0c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_list_hides_sensitive_data [0.049283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '479d7677-9bcd-4d12-a7fe-b09bf8e0ef99', '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/479d7677-9bcd-4d12-a7fe-b09bf8e0ef99 Openstack-Request-Id: req-52ba79e3-131c-4626-933f-543e11991fd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "479d7677-9bcd-4d12-a7fe-b09bf8e0ef99", "created_at": "2025-05-30T17:31:46.193300+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/479d7677-9bcd-4d12-a7fe-b09bf8e0ef99", "rel": "self"}, {"href": "http://localhost/inspection/479d7677-9bcd-4d12-a7fe-b09bf8e0ef99", "rel": "bookmark"}]} POST /v1/inspection_rules WITH {'uuid': 'e8856eb0-b76f-4b6f-99fb-7b37f8cc243c', '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/e8856eb0-b76f-4b6f-99fb-7b37f8cc243c Openstack-Request-Id: req-91398526-5686-430a-8cca-315760f6c1f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e8856eb0-b76f-4b6f-99fb-7b37f8cc243c", "created_at": "2025-05-30T17:31:46.203902+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/e8856eb0-b76f-4b6f-99fb-7b37f8cc243c", "rel": "self"}, {"href": "http://localhost/inspection/e8856eb0-b76f-4b6f-99fb-7b37f8cc243c", "rel": "bookmark"}]} GET /v1/inspection_rules?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49937a22-34e4-4119-b459-c1efd37fe4a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inspection_rules": [{"uuid": "479d7677-9bcd-4d12-a7fe-b09bf8e0ef99", "created_at": "2025-05-30T17:31:46.193300+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/479d7677-9bcd-4d12-a7fe-b09bf8e0ef99", "rel": "self"}, {"href": "http://localhost/inspection/479d7677-9bcd-4d12-a7fe-b09bf8e0ef99", "rel": "bookmark"}]}, {"uuid": "e8856eb0-b76f-4b6f-99fb-7b37f8cc243c", "created_at": "2025-05-30T17:31:46.203902+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/e8856eb0-b76f-4b6f-99fb-7b37f8cc243c", "rel": "self"}, {"href": "http://localhost/inspection/e8856eb0-b76f-4b6f-99fb-7b37f8cc243c", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.026615s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/df6bf663-a3b2-497a-862c-587fdf4a4f8d WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7cbb41db-368f-427e-8459-7ae32fea4224 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_one [0.028408s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11be10fe-49c3-4a95-a0bb-af0cb515e8b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inspection_rules": [{"uuid": "094f328f-ecd8-4eef-a5aa-0402a4f75744", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/094f328f-ecd8-4eef-a5aa-0402a4f75744", "rel": "self"}, {"href": "http://localhost/inspection/094f328f-ecd8-4eef-a5aa-0402a4f75744", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.074059s] ... 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-b22b666d-75fd-4ad3-9910-6c155f2a79f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.032031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '93ca833a-9165-4a25-93fa-b60b5f80aa3c'} GOT Response: 204 No Content Openstack-Request-Id: req-93c2a622-920e-4cb0-a015-c3fe73462080 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.053389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/6ff02ed4-8993-4971-a96c-4a7a31d87a5f WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3af3e9a0-f473-41c1-8218-64b1ff415fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6ff02ed4-8993-4971-a96c-4a7a31d87a5f", "created_at": "2025-05-30T17:31:46.264594+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6ff02ed4-8993-4971-a96c-4a7a31d87a5f", "rel": "self"}, {"href": "http://localhost/deploy_templates/6ff02ed4-8993-4971-a96c-4a7a31d87a5f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.043549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': 'a1831f54-a302-4440-a6eb-50b22485a662'} GOT Response: 204 No Content Openstack-Request-Id: req-872199fd-a6e3-4c83-a5ae-41ac053c9843 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_restricted_allocation_with_mismatch_owner [0.360102s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '85094945-e8a3-458a-a5ac-9fe20b3f6af6', 'owner': '54321'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8f947736-8e7a-4357-8f2c-ba310d678f3f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPatch.test_remove_name [0.046078s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/ea581f2c-c20e-40b5-86cd-3d9604ea1a54 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f1a6e388-de94-495b-82ac-56b5f3956829 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.032718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/83d0996b-308f-4dd0-a051-1c4ebcdb6e06 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-408691ee-921d-45f1-aa85-4990ed4dc3b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.114588s] ... 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-98e60120-f3d0-452b-9491-c8988337cafc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:46.354124+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-3af8e846-ac0d-4c53-a9a7-70ff8ec45806 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:46.354124+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_allocation.TestPost.test_create_restricted_allocation_with_owner [0.068273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b76f3809-18fa-4250-9319-b5c2337efda8', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/b76f3809-18fa-4250-9319-b5c2337efda8 Openstack-Request-Id: req-2a62821c-a313-4fe2-9296-83dc4482d8a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "b76f3809-18fa-4250-9319-b5c2337efda8", "created_at": "2025-05-30T17:31:46.376771+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/b76f3809-18fa-4250-9319-b5c2337efda8", "rel": "self"}, {"href": "http://localhost/allocations/b76f3809-18fa-4250-9319-b5c2337efda8", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/b76f3809-18fa-4250-9319-b5c2337efda8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dfd7cc6f-67de-46ba-8f46-e9386c3355c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "b76f3809-18fa-4250-9319-b5c2337efda8", "created_at": "2025-05-30T17:31:46.376771+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/b76f3809-18fa-4250-9319-b5c2337efda8", "rel": "self"}, {"href": "http://localhost/allocations/b76f3809-18fa-4250-9319-b5c2337efda8", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.037127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/4f0a9285-291b-41a4-b6e8-f2f2271da7ab WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3c193ef-7622-42b0-9890-340a48b9633b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.035605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/5e17cbf9-da27-4f12-9972-68b21316fa5a WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1f7120f8-9ead-4604-b6b8-534961a9703d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_chassis.TestListChassis.test_collection_links [0.058742s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb9e5d88-2658-4c28-b6c3-f4ac69746467 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "06efa946-15d7-44c8-9a33-00e0db22a063", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/06efa946-15d7-44c8-9a33-00e0db22a063", "rel": "self"}, {"href": "http://localhost/chassis/06efa946-15d7-44c8-9a33-00e0db22a063", "rel": "bookmark"}]}, {"uuid": "2980b63b-3e4f-4f31-a9c3-7777a4e83d23", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/2980b63b-3e4f-4f31-a9c3-7777a4e83d23", "rel": "self"}, {"href": "http://localhost/chassis/2980b63b-3e4f-4f31-a9c3-7777a4e83d23", "rel": "bookmark"}]}, {"uuid": "87e1f239-8786-46f9-a5bf-3b82b0b5115d", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/87e1f239-8786-46f9-a5bf-3b82b0b5115d", "rel": "self"}, {"href": "http://localhost/chassis/87e1f239-8786-46f9-a5bf-3b82b0b5115d", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=87e1f239-8786-46f9-a5bf-3b82b0b5115d"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version [0.098650s] ... 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-35a0d7b8-cf57-4661-b077-be1110f1a899 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPatch.test_remove_only_step_fail [0.041044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b654acf2-990b-413d-b6a2-1c369aeb5884 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-03ac7eb5-5ebd-4068-ab17-61a7e94fde32 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.059594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e55027d-7e50-4602-a069-b90fabb284b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "1866de46-f606-4993-8a08-ac1f798a1038", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/1866de46-f606-4993-8a08-ac1f798a1038", "rel": "self"}, {"href": "http://localhost/chassis/1866de46-f606-4993-8a08-ac1f798a1038", "rel": "bookmark"}]}, {"uuid": "2de75d93-cac5-48e3-92da-07a2d41f8954", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/2de75d93-cac5-48e3-92da-07a2d41f8954", "rel": "self"}, {"href": "http://localhost/chassis/2de75d93-cac5-48e3-92da-07a2d41f8954", "rel": "bookmark"}]}, {"uuid": "54745df2-4e7c-44a9-82f8-9de2567478b5", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/54745df2-4e7c-44a9-82f8-9de2567478b5", "rel": "self"}, {"href": "http://localhost/chassis/54745df2-4e7c-44a9-82f8-9de2567478b5", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=54745df2-4e7c-44a9-82f8-9de2567478b5"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.222871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': '9e198c7d-6dfa-4552-8e9b-57343cafff37'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1243b461-d514-4d2f-9a14-6a443769d92d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPatch.test_remove_steps [0.053145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/dfad6664-1f05-4fec-9ed1-26308c61de2f WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9c710ee5-b61e-4a0e-baa8-0ba4ff72add1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.067294s] ... 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-55b4f63e-5198-49b6-ba8f-3a4a394780e8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.031572s] ... 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-5e13031c-70fc-4b5a-8eb3-feccf4a30728 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPatch.test_remove_uuid [0.036172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/8affd73e-6c5e-40cf-8908-726594637671 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8a6e6161-f15c-4caa-adc6-ece8cd2b3433 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.055557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d80cb85-62e0-4572-b147-1c8f6f18ddd0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "b3a33de2-bfa4-4a4f-a84f-2a9420aa193b", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b3a33de2-bfa4-4a4f-a84f-2a9420aa193b", "rel": "self"}, {"href": "http://localhost/chassis/b3a33de2-bfa4-4a4f-a84f-2a9420aa193b", "rel": "bookmark"}]}, {"uuid": "d9a6398c-ef7e-426f-acd0-b2ba81e096d4", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/d9a6398c-ef7e-426f-acd0-b2ba81e096d4", "rel": "self"}, {"href": "http://localhost/chassis/d9a6398c-ef7e-426f-acd0-b2ba81e096d4", "rel": "bookmark"}]}, {"uuid": "bb6a5f8f-6e3d-4c85-88b5-84c0e8a09099", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/bb6a5f8f-6e3d-4c85-88b5-84c0e8a09099", "rel": "self"}, {"href": "http://localhost/chassis/bb6a5f8f-6e3d-4c85-88b5-84c0e8a09099", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=bb6a5f8f-6e3d-4c85-88b5-84c0e8a09099"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.029400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': 'be588df7-0702-4012-8761-d5513d0cbe9b'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed7b1c20-0d7c-4536-b850-08aa4fc97897 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.065592s] ... 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-d94238e2-c6eb-476f-850e-23763adc4d1c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestAttachDetachVif.test_vif_attach_node_locked [0.031217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '8a3f8803-e078-40fc-8c69-bea8ae57bc75'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7e75795f-f5ec-4f76-94af-f71e50243b73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_chassis.TestListChassis.test_detail [0.054210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54f14bcd-cb0f-43e8-89a9-f92f7865481f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:46.632677+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_deploy_template.TestPatch.test_replace_duplicate_step [0.071514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/24791acc-e09a-4bd6-afde-861eb6441863 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-1b626e34-8f82-45ea-b42f-2dab482258c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node_not_found [0.035518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/doesntexist/vifs WITH {'id': '412bf495-ee79-4dff-b3e5-e14a8f7a2cc7'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-42b97f22-4a59-4ba8-a8c3-e770762798e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.048655s] ... 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-2200b878-2cf3-4fdf-ae3c-34696f8e2de7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.037065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'bcfcb9a1-ce71-48b2-8cb6-59f8a51d2994', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-edf5c2e4-caf3-42e8-ab9d-0d3e4f64c268 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.057013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/05ac0d47-671c-4231-8bfe-e85df4895b15 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-026d1d44-2f3e-4615-9d61-5702f0635c0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.108844s] ... 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-21da3022-ac76-44d1-a0ec-7f3439a4da98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:46.703900+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-9b7bf2dc-9fdf-435c-a9b0-529e61c33754 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:46.703900+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.040050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '05c3aebf-39ca-4e80-ab0c-70c9f1d4a378', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content Openstack-Request-Id: req-0cbde64f-737b-4a3f-8ce6-1336ffffddf8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.045458s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/7a303f08-b7d1-4a9a-ab8c-4ce80e324471 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d733c7b-4e27-4225-874c-a18d56d31ea0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_chassis.TestListChassis.test_detail_query [0.046696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9b15a96-ecef-4450-be59-e616ad873d30 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:31:46.731149+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_node.TestAttachDetachVif.test_vif_detach [0.033472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/74913c84-885e-4bbf-aa5f-e88238693a33 GOT Response: 204 No Content Openstack-Request-Id: req-51b16ff3-f6f9-4be4-a7db-f81d0fec9e40 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.065349s] ... 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-45446ad4-0053-492c-97ab-cb32e4647381 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.048643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/a95e44bc-ab1c-4a7e-b060-2c0ee2befe4d WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d262b5a-6c6c-42b4-926b-7708e4afe484 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_chassis.TestListChassis.test_detail_query_false [0.057250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-340a16f2-d27c-40e5-834c-9dc35a2ccacf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-0777f31c-5556-4344-bf71-a08a8b4c07be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.044340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/vifs/054bb74e-2c22-43c6-9be7-a24a6757fcc6 GOT Response: 204 No Content Openstack-Request-Id: req-4b6261e5-806e-4153-a3c0-95f8fee28b31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.042725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e646ffa2-42ad-414e-8603-77d012db6b11 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f21ae371-1b47-43ae-b8bb-56ba6846bbb4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestAttachDetachVif.test_vif_detach_node_locked [0.029753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/3afcd700-4755-44d4-8740-05c431a9eee1 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a445c470-d832-4272-8e1e-7a451cf0313d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_chassis.TestListChassis.test_detail_using_query_and_fields [0.047069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1c72c9c7-0712-4466-a52d-eeb3af781aaf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestPost.test_create_node_no_chassis_uuid [0.088411s] ... 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-ba0e4dae-9e7c-4e45-976c-5c05ce09b44d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:46.872662+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.037128s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/cd1b3bdb-f735-4188-8492-23b9fd22380c 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-490043ad-6884-4313-86cc-086fe2a76da2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_not_found [0.032592s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/doesntexist/vifs/3c864a06-0815-4d49-b488-d393bb6397a5 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-227b4540-4f27-470e-9976-6ee93a64952a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.035970s] ... 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-451c45bc-49fc-495d-a797-b82221394902 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"vifs": []} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.046032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d322025b-d053-4909-8497-ed2769860ee5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.027872s] ... 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_deploy_template.TestPatch.test_replace_multi [0.099322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/25d6f5f3-5181-4bdc-8a42-be0b03a6b3c6 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-41c0cf53-bf25-4f7e-9b0c-33d17adbefee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "25d6f5f3-5181-4bdc-8a42-be0b03a6b3c6", "created_at": "2025-05-30T17:31:46.920153+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/25d6f5f3-5181-4bdc-8a42-be0b03a6b3c6", "rel": "self"}, {"href": "http://localhost/deploy_templates/25d6f5f3-5181-4bdc-8a42-be0b03a6b3c6", "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}]} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.060753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bfda4188-28d9-41c1-8304-c4c6512874fa X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.036581s] ... 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_node.TestPost.test_create_node_no_default_resource_class [0.117686s] ... 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-4ed9ba5f-bf33-474a-b285-0f7f29636de5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:46.965618+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-9226916f-c86f-441f-bd74-0abde64b7186 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:46.965618+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.031379s] ... 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_chassis.TestListChassis.test_empty [0.046685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a419a2f0-7117-4d7e-8694-237b8133aab8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.031359s] ... 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_deploy_template.TestPatch.test_replace_name_already_exist [0.098008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/c40e2718-8e8a-47b1-9aa6-0007fa1d0b1a WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e995a53c-8ddd-4101-95ff-dcffc4f6b4d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID c40e2718-8e8a-47b1-9aa6-0007fa1d0b1a already exists.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.038622s] ... 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_chassis.TestListChassis.test_get_collection_custom_fields [0.051511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bda01ade-d0a3-4dc3-ab4c-6ddb2af4b83c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "3b50a207-8a51-4cad-b248-01e14d8fc165", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/3b50a207-8a51-4cad-b248-01e14d8fc165", "rel": "self"}, {"href": "http://localhost/chassis/3b50a207-8a51-4cad-b248-01e14d8fc165", "rel": "bookmark"}]}, {"uuid": "9d21669d-7cd0-42e8-8133-61cc214b5f62", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/9d21669d-7cd0-42e8-8133-61cc214b5f62", "rel": "self"}, {"href": "http://localhost/chassis/9d21669d-7cd0-42e8-8133-61cc214b5f62", "rel": "bookmark"}]}, {"uuid": "7226467b-5d6c-4511-90a5-fc73e1255639", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7226467b-5d6c-4511-90a5-fc73e1255639", "rel": "self"}, {"href": "http://localhost/chassis/7226467b-5d6c-4511-90a5-fc73e1255639", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.031990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f5d0a3e8-142a-4deb-b743-68adfb21cab9 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-fb2aa237-8adc-41d6-bccd-5d1a9ab63fee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.135637s] ... 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-2c34ca73-d452-4707-8726-92cc41e39152 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.047673s] ... 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_deploy_template.TestPatch.test_replace_step_invalid_interface [0.036399s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/46489f53-7707-4177-b4ac-dae4d869aafb WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7089b167-ae68-442f-a163-695ba8758a48 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.058873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78ffd17d-9f4c-4d8d-9671-cb5a19659ac2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"extra": {}, "links": [{"href": "http://localhost/v1/chassis/ce60620f-cb4b-43ed-bfd5-72cf156393cb", "rel": "self"}, {"href": "http://localhost/chassis/ce60620f-cb4b-43ed-bfd5-72cf156393cb", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/deb3e35b-0827-4c2e-9a07-db9eea4483b6", "rel": "self"}, {"href": "http://localhost/chassis/deb3e35b-0827-4c2e-9a07-db9eea4483b6", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=deb3e35b-0827-4c2e-9a07-db9eea4483b6"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.048073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/32ab4f7c-4a7b-42ed-a1d5-64b1dab70ac7 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e56f6f11-52e6-4f6b-93f1-d72d0e1bdf95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "32ab4f7c-4a7b-42ed-a1d5-64b1dab70ac7", "created_at": "2025-05-30T17:31:47.180088+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/32ab4f7c-4a7b-42ed-a1d5-64b1dab70ac7", "rel": "self"}, {"href": "http://localhost/deploy_templates/32ab4f7c-4a7b-42ed-a1d5-64b1dab70ac7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.058284s] ... 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_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.038013s] ... 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-546bd028-5e9b-4f64-bfba-7ad350c86390 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.032831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/deae87bd-c2d9-41a3-89c3-6cae6ae32135 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.098611s] ... 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-3f31b015-66eb-4efc-bdad-a94d3e714348 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.224848+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-500e7060-39f8-4b69-b974-0719a71c751e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.224848+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.054090s] ... 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_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.051473s] ... 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-513b6a4f-3071-4553-8c53-94043b73a527 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.046791s] ... 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-fe4ce5ed-b21f-4a22-89d5-0e517222f6cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "bf2be743-4031-4699-8eaa-8c8b219d721a", "created_at": "2025-05-30T17:31:47.260968+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bf2be743-4031-4699-8eaa-8c8b219d721a", "rel": "self"}, {"href": "http://localhost/deploy_templates/bf2be743-4031-4699-8eaa-8c8b219d721a", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.044843s] ... 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_deploy_template.TestPatch.test_update_by_name_old_api_version [0.025890s] ... 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.071808s] ... 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-d9445445-bbc7-49de-b033-3a487784d5eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_chassis.TestListChassis.test_get_one [0.046788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f22ce2b1-8c9f-475d-ae08-ef3f07344fd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:47.300741+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_deploy_template.TestPatch.test_update_by_name_with_json [0.049717s] ... 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-8190dc12-a5e4-4495-8866-86bccaffedb1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e406dd6e-7629-4b79-b535-431e033ff849", "created_at": "2025-05-30T17:31:47.335452+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e406dd6e-7629-4b79-b535-431e033ff849", "rel": "self"}, {"href": "http://localhost/deploy_templates/e406dd6e-7629-4b79-b535-431e033ff849", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.062643s] ... 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_chassis.TestListChassis.test_get_one_custom_fields [0.048933s] ... 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-bed6d40b-8066-4a3c-9c1a-ef9be245a938 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json_not_found [0.031209s] ... 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-842ff5ef-f343-43e9-bfdb-a2ad421d9d41 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.037599s] ... 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_deploy_template.TestPatch.test_update_invalid_name [0.041721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/02e9a9bb-c1d5-436c-b442-91b12b9d56d8 WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-39e3cba4-23b0-4e9c-8c31-76476d7d1682 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.027281s] ... 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_chassis.TestListChassis.test_links [0.068462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63645980-dd59-425b-85fd-715e8e06ec94 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "384ed678-bbdb-46f1-888c-fc58e1b6c338", "created_at": "2025-05-30T17:31:47.416261+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338", "rel": "self"}, {"href": "http://localhost/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338/nodes", "rel": "self"}, {"href": "http://localhost/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338/nodes", "rel": "bookmark"}]]} GET /v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42557b28-6054-4226-8b75-8f1a330614d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "384ed678-bbdb-46f1-888c-fc58e1b6c338", "created_at": "2025-05-30T17:31:47.416261+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338", "rel": "self"}, {"href": "http://localhost/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338/nodes", "rel": "self"}, {"href": "http://localhost/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338/nodes", "rel": "bookmark"}]]} GET /chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1b04b36-4dcc-4ae8-ae7c-60ab6c9cfc8f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "384ed678-bbdb-46f1-888c-fc58e1b6c338", "created_at": "2025-05-30T17:31:47.416261+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338", "rel": "self"}, {"href": "http://localhost/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338/nodes", "rel": "self"}, {"href": "http://localhost/chassis/384ed678-bbdb-46f1-888c-fc58e1b6c338/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.050386s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/a33414ad-9a51-4d6a-8ca4-39742781c29c WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6dc165de-cd7f-4a1b-b895-8b240acb7e98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a33414ad-9a51-4d6a-8ca4-39742781c29c", "created_at": "2025-05-30T17:31:47.461064+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a33414ad-9a51-4d6a-8ca4-39742781c29c", "rel": "self"}, {"href": "http://localhost/deploy_templates/a33414ad-9a51-4d6a-8ca4-39742781c29c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.066790s] ... 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_chassis.TestListChassis.test_links_public_url [0.063419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82826149-8202-4311-9178-5d9b085561ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "created_at": "2025-05-30T17:31:47.486839+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "rel": "self"}, {"href": "http://foo/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f/nodes", "rel": "self"}, {"href": "http://foo/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f/nodes", "rel": "bookmark"}]]} GET /v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d2e921f-07b7-419a-9210-5b266ee7b299 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "created_at": "2025-05-30T17:31:47.486839+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "rel": "self"}, {"href": "http://foo/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f/nodes", "rel": "self"}, {"href": "http://foo/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f/nodes", "rel": "bookmark"}]]} GET /chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-782613ac-a161-4e24-a7f0-70506c8b811f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "created_at": "2025-05-30T17:31:47.486839+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "rel": "self"}, {"href": "http://foo/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f/nodes", "rel": "self"}, {"href": "http://foo/chassis/34e52da6-64e7-446f-8ba8-0fdfffeaf77f/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope [0.198234s] ... 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-c19d9886-0795-4aea-ad30-fa1f8b7666c7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.460075+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-9f5fe689-6449-4a91-a095-19437879a2d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.460075+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test_check__check_steps_wrappers [0.042520s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.073995s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0b2ca8f1-6359-430e-878c-d1fe80c7d350 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-835ea967-0ca6-4125-bc6b-c4bbda36cac0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0b2ca8f1-6359-430e-878c-d1fe80c7d350", "created_at": "2025-05-30T17:31:47.518417+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0b2ca8f1-6359-430e-878c-d1fe80c7d350", "rel": "self"}, {"href": "http://localhost/deploy_templates/0b2ca8f1-6359-430e-878c-d1fe80c7d350", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.056704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cce29b51-9b1b-4b65-ad5a-ebcf15cfdb0d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "97fae3f7-dba7-49c2-a918-3f727bd1afc7", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/97fae3f7-dba7-49c2-a918-3f727bd1afc7", "rel": "self"}, {"href": "http://localhost/chassis/97fae3f7-dba7-49c2-a918-3f727bd1afc7", "rel": "bookmark"}]}, {"uuid": "b0a79c0b-c0a4-4b9b-b9d6-d5f3a9e1d691", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b0a79c0b-c0a4-4b9b-b9d6-d5f3a9e1d691", "rel": "self"}, {"href": "http://localhost/chassis/b0a79c0b-c0a4-4b9b-b9d6-d5f3a9e1d691", "rel": "bookmark"}]}, {"uuid": "08a754d8-3d82-40d0-b1b5-222ea7efc0a1", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/08a754d8-3d82-40d0-b1b5-222ea7efc0a1", "rel": "self"}, {"href": "http://localhost/chassis/08a754d8-3d82-40d0-b1b5-222ea7efc0a1", "rel": "bookmark"}]}, {"uuid": "59e310b9-4b84-4c25-87c7-451dfd93be65", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/59e310b9-4b84-4c25-87c7-451dfd93be65", "rel": "self"}, {"href": "http://localhost/chassis/59e310b9-4b84-4c25-87c7-451dfd93be65", "rel": "bookmark"}]}, {"uuid": "0d3c8e2b-9864-4ea4-9cf3-a985bfc85bf1", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/0d3c8e2b-9864-4ea4-9cf3-a985bfc85bf1", "rel": "self"}, {"href": "http://localhost/chassis/0d3c8e2b-9864-4ea4-9cf3-a985bfc85bf1", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.049553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/76ff02bd-4038-429d-92cf-79f3609190e3 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5556c91b-5bec-4bb4-8db7-4abbc9c84565 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 76ff02bd-4038-429d-92cf-79f3609190e3 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope [0.108259s] ... 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-889ca01e-1230-433a-8029-f245b8464421 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.607624+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-b8744ac6-9884-4383-b02d-e5eef124d0a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.607624+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_firmware_components [0.080448s] ... 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-535b9afd-4237-4b41-b3c0-b37be1cd5f00 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {"firmware": [{"created_at": "2025-05-30T17:31:47.606761+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-30T17:31:47.604825+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.037030s] ... 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-ee17aeb1-9225-4655-87b6-2169128f1902 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.083050s] ... 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-1df03b02-0aa8-4635-8681-09b9a960852a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "09ea6708-8271-4221-9f41-a915672af559", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/09ea6708-8271-4221-9f41-a915672af559", "rel": "self"}, {"href": "http://localhost/nodes/09ea6708-8271-4221-9f41-a915672af559", "rel": "bookmark"}]}, {"uuid": "71f378cb-a3b7-4827-b41c-0114f4288671", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/71f378cb-a3b7-4827-b41c-0114f4288671", "rel": "self"}, {"href": "http://localhost/nodes/71f378cb-a3b7-4827-b41c-0114f4288671", "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-ca41b121-8454-4cf9-ab10-1dc2e600f968 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "09ea6708-8271-4221-9f41-a915672af559", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/09ea6708-8271-4221-9f41-a915672af559", "rel": "self"}, {"href": "http://localhost/nodes/09ea6708-8271-4221-9f41-a915672af559", "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=09ea6708-8271-4221-9f41-a915672af559"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.039815s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event [0.029606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-058c144d-dfcb-4119-beae-01ed6bd7d9da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.067860s] ... 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-3b5af69d-615e-437a-b95f-319d77daf6ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.052025s] ... 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-19b2740e-43bd-4fdf-8837-b5132b0a1710 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.031705s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d8a5d90-4af6-4ef3-a7d8-f81aa280ca96 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version [0.046537s] ... 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-bdcb4849-ce17-4ccf-afc5-c1de7dc9b9c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.057594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f545db1-43bd-457b-a585-c1d10d33deb5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:47.758565+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_node.TestNodeShardPost.test_create_node_with_shard [0.120694s] ... 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-d837cb82-8d22-44c0-90a0-ac79451ac33e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:47.766696+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-1bec88fa-c94e-4d0a-adf0-8ecf84c50c42 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:47.766696+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.051746s] ... 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-cb46cb7e-6ea6-41d5-862f-f00a0f01d120 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.042795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-320f715d-2c47-48c6-b36f-8c7730cf5997 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events [0.032260s] ... 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-6c14806f-7069-44ce-9165-9280d897c408 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.065627s] ... 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-c34a72a3-9da8-4702-91a3-d6ef7416e726 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.173758s] ... 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-f98a6984-ebf6-4426-a5a9-00ed04e2bf72 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-255dc7c1-24ea-4521-a92c-ffe21b695e19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-a7acc116-2bd4-4909-8995-3014429167bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-7d454a72-164b-4be3-bcf9-01c0c5797c98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-c74c7823-9d3b-4dbb-9530-6d55de57ab54 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-da43bee5-c58c-40f8-925d-240e1bf50911 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.052460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72870fc0-4dda-42c8-99dd-e41a9c2ab179 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach [0.037967s] ... 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-b8d6e8e2-78b4-4e0c-a943-4035b3a4b24d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.041360s] ... 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-5a9782d0-7bec-4b54-b5f1-cb8bd6b5be82 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.037005s] ... 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-aab10ea9-c257-4b27-b141-c93c837f8916 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestNodeVmedia.test_attach_invalid_device_type [0.041038s] ... 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-962bc01a-e6fd-4f84-bf7b-cac036a101ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.054418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e93e15c2-372c-481e-b100-4e1f2608fefc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "3dfd2d08-8d45-4b77-a368-be5e35a24bb0", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/3dfd2d08-8d45-4b77-a368-be5e35a24bb0", "rel": "self"}, {"href": "http://localhost/chassis/3dfd2d08-8d45-4b77-a368-be5e35a24bb0", "rel": "bookmark"}]}, {"uuid": "83ed53c1-3722-497a-a916-8127d27c9943", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/83ed53c1-3722-497a-a916-8127d27c9943", "rel": "self"}, {"href": "http://localhost/chassis/83ed53c1-3722-497a-a916-8127d27c9943", "rel": "bookmark"}]}, {"uuid": "fb5d5279-5ec9-483e-b0f1-d497357fcc12", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/fb5d5279-5ec9-483e-b0f1-d497357fcc12", "rel": "self"}, {"href": "http://localhost/chassis/fb5d5279-5ec9-483e-b0f1-d497357fcc12", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.035843s] ... 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-27bd6e23-a9e1-4b02-87a1-80d171148f53 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPost.test_create_node_resource_class [0.107103s] ... 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-2360be65-b41b-456c-ad68-a298ad37261b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.953186+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-25f87e26-1d31-4b55-b844-e4342d2e86fa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:47.953186+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_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type [0.044841s] ... 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-1bd7832b-50fe-424a-9cab-b089eb5a59fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_chassis.TestListChassis.test_sort_key_invalid [0.055190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-45c2eeba-76ac-4175-8179-a09b57f8ec2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-e9ea354b-5675-4ab0-afe1-6166a8297232 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestNodeVmedia.test_attach_missing_device_type [0.043862s] ... 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-b686f55b-afc8-48b6-a1c8-5a96d27b14e8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_event.TestPostRBAC.test_network_port_event_invalid_device_id [0.041720s] ... 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-6d7fdbea-050d-475c-a79d-07fa5d0ac232 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestNodeVmedia.test_attach_missing_image_url [0.030446s] ... 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-f9474ea9-f941-4123-85e4-399483b68a6b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address [0.032225s] ... 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-71376849-ad9f-46ad-ba22-4155ecf1ae93 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPost.test_create_node_resource_class_old_api_version [0.085005s] ... 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-d9625f76-6c59-41a7-b382-125ab1309232 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestDelete.test_delete_by_name [0.064321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-cbbdb759-abea-42a8-8f76-9f7854eed616 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_required_only [0.039846s] ... 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-ac62f328-6ea4-4394-b44b-db2e3a635b67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.037622s] ... 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-db91ef39-ba39-42c3-aecd-8944072f4ba0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_wrong_version [0.030142s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status [0.033288s] ... 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-405b10da-ee3a-4c5d-9eec-79111534b61a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.048769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e84e9f39-5e37-4ea5-b01b-7d9a737adf1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.040959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content Openstack-Request-Id: req-351731ca-048f-4224-b759-25c2b38772ae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events [0.033474s] ... 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-68301a32-73be-4e16-bc8a-089ef7a4950f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.114961s] ... 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-40f414d7-fd62-4ee8-8ada-1afafd5734e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:48.153963+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-0ac20006-2483-4ca4-8ba0-39122f2a3a4c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:48.153963+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.035767s] ... 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-1dbfc813-d8d1-434e-af72-f315647f5134 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property [0.034276s] ... 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-3f8c3c4a-541a-44fc-b28b-140b1daac497 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.065836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content Openstack-Request-Id: req-f135cd37-7395-43ba-98a7-069f154eef61 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.033587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content Openstack-Request-Id: req-ce301718-b124-4bf8-9083-ad6941ef212e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.068436s] ... 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-35767473-9d18-47c9-bab7-256ccba5438d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestBIOS.test_get_all_bios [0.052103s] ... 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-13dc253c-f58a-4e4f-b624-2d983b85445f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-30T17:31:48.235256+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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json_not_found [0.057344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6301598e-505d-4c59-886a-587a4b4c3b8c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.053416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content Openstack-Request-Id: req-3a91a6df-016e-410e-9003-059432162b29 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.043918s] ... 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-ef7fd999-85de-4442-bf9c-bdcf2eb9cc4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-30T17:31:48.286789+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.TestNodeVmedia.test_detach_wrong_device_types [0.027703s] ... 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-ab4b1d5a-c131-4c2b-b81e-ff3adafb3f6f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.033412s] ... 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-d626d5ef-62ef-4c24-bc84-3ab45a840873 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestNodeVmedia.test_detach_wrong_version [0.025398s] ... 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_deploy_template.TestDelete.test_delete_by_uuid [0.072872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/775e5d73-ce8f-44b2-b36d-fc5aec4766a3 GOT Response: 204 No Content Openstack-Request-Id: req-80f4794e-b875-444e-a0b7-225e4936f475 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.035229s] ... 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_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.080022s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/5b3cf958-da77-4cb3-890a-0c799b0d137b.json GOT Response: 204 No Content Openstack-Request-Id: req-78e3753d-9b6a-488f-af2e-3020a58b2b3f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get [0.085217s] ... 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-c30100e9-ef37-4d39-af1a-24554e98d4c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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": ""}] {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json_not_found [0.059766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/56e3a55c-de8f-49e8-9862-cbb215a3da6b.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a936789a-e678-40de-97fb-2add6139b819 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 56e3a55c-de8f-49e8-9862-cbb215a3da6b.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get_wrong_version [0.061321s] ... 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-525491ad-0f91-4ac8-9257-60135a482f0f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.059087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/edd63662-1889-45d9-b079-65ab7a5593e2 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.TestPut.test_abort_cleanhold [0.100364s] ... 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-59f1b6ce-d62e-44df-b1da-3459c04f84d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.053960s] ... 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.222590s] ... 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-865533e7-7deb-45c4-9788-fc1d2383224c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-30T17:31:48.579232+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.037377s] ... 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-ec8e0e83-fbe7-477c-a5f2-7d123d60e0fc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields [0.050917s] ... 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-52ec099e-bc77-4609-b9e8-0eb8fc8ec06f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-30T17:31:48.660212+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_deploy_template.TestPost.test_create [0.094143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'd762cf9a-d7ef-493d-821b-5bc185ff5e36', '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/d762cf9a-d7ef-493d-821b-5bc185ff5e36 Openstack-Request-Id: req-6f7ec84a-51c8-456f-b44f-6d389398ce36 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "d762cf9a-d7ef-493d-821b-5bc185ff5e36", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d762cf9a-d7ef-493d-821b-5bc185ff5e36", "rel": "self"}, {"href": "http://localhost/deploy_templates/d762cf9a-d7ef-493d-821b-5bc185ff5e36", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/d762cf9a-d7ef-493d-821b-5bc185ff5e36 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0d0b585-409f-41e4-b4f2-1853de7382dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "d762cf9a-d7ef-493d-821b-5bc185ff5e36", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d762cf9a-d7ef-493d-821b-5bc185ff5e36", "rel": "self"}, {"href": "http://localhost/deploy_templates/d762cf9a-d7ef-493d-821b-5bc185ff5e36", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.107252s] ... 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-1d7d59c1-333a-4e58-9896-df37180c7c4b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version [0.042032s] ... 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-f83e4796-2bfa-4436-bafd-99935079b9f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.078242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '2c5aaacf-f852-435f-a9d1-0010d65f7b9b', '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/2c5aaacf-f852-435f-a9d1-0010d65f7b9b Openstack-Request-Id: req-0f1b5f7e-1c24-45db-8be9-28aaa0ef43e8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "2c5aaacf-f852-435f-a9d1-0010d65f7b9b", "created_at": "2025-05-30T17:31:48.754201+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2c5aaacf-f852-435f-a9d1-0010d65f7b9b", "rel": "self"}, {"href": "http://localhost/deploy_templates/2c5aaacf-f852-435f-a9d1-0010d65f7b9b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_deployhold [0.097965s] ... 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-ce220bbe-62d1-4f93-bfdb-dfd61cd131c2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.067923s] ... 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-3f20421e-4779-4187-8720-0090083589a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"virtualization": {"created_at": "2025-05-30T17:31:48.777674+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_one_bios_fails_if_not_found [0.039616s] ... 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-f2dcc5bd-bf48-4108-b3f9-f8929e213345 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.083536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '856903c5-36a8-4811-a69c-b36f55fd144c', '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/856903c5-36a8-4811-a69c-b36f55fd144c Openstack-Request-Id: req-8da49b71-3cad-4153-a353-792d85d7e775 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "856903c5-36a8-4811-a69c-b36f55fd144c", "created_at": "2025-05-30T17:31:48.842076+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/856903c5-36a8-4811-a69c-b36f55fd144c", "rel": "self"}, {"href": "http://localhost/deploy_templates/856903c5-36a8-4811-a69c-b36f55fd144c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/856903c5-36a8-4811-a69c-b36f55fd144c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9069639-36ca-4e0c-9ba4-19760df5fd27 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "856903c5-36a8-4811-a69c-b36f55fd144c", "created_at": "2025-05-30T17:31:48.842076+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/856903c5-36a8-4811-a69c-b36f55fd144c", "rel": "self"}, {"href": "http://localhost/deploy_templates/856903c5-36a8-4811-a69c-b36f55fd144c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.030391s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.087807s] ... 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-8d296670-df31-4110-b247-aff2cd068717 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry [0.043304s] ... 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-537a250a-af19-43ce-bd30-8ceaa77d30d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"virtualization": {"created_at": "2025-05-30T17:31:48.894911+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"}]}} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.078265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '60e68232-2b09-4fe0-ad27-9d0a719cdbb9', '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-ccf56828-a463-40cf-bafc-5e038c1e8d7b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [0.695784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': 'fa2e0085-a806-4623-9b32-d3fa11e1fd2f', '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/fa2e0085-a806-4623-9b32-d3fa11e1fd2f Openstack-Request-Id: req-36569186-c511-4a02-89cc-09a38e44a2fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "fa2e0085-a806-4623-9b32-d3fa11e1fd2f", "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/fa2e0085-a806-4623-9b32-d3fa11e1fd2f", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/states", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/volume", "rel": "bookmark"}]} GET /v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75dce81f-2db9-427a-8af3-3776e9e83803 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "fa2e0085-a806-4623-9b32-d3fa11e1fd2f", "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/fa2e0085-a806-4623-9b32-d3fa11e1fd2f", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/states", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fa2e0085-a806-4623-9b32-d3fa11e1fd2f/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '4784e161-f666-4849-81f9-86177731fa81', '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/4784e161-f666-4849-81f9-86177731fa81 Openstack-Request-Id: req-042df88e-0df8-4750-af0d-6d44c7f9d8e6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4784e161-f666-4849-81f9-86177731fa81", "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/4784e161-f666-4849-81f9-86177731fa81", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/ports", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9- 86177731fa81/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/states", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/volume", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81/volume", "rel": "bookmark"}]} GET /v1/nodes/4784e161-f666-4849-81f9-86177731fa81 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1f02221-736a-4c9a-9c1b-24a2889902f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4784e161-f666-4849-81f9-86177731fa81", "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/4784e161-f666-4849-81f9-86177731fa81", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/ports", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/states", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4784e161-f666-4849-81f9-86177731fa81/volume", "rel": "self"}, {"href": "http://localhost/nodes/4784e161-f666-4849-81f9-86177731fa81/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '0ad749f4-d4ea-4a83-992d-a6bc752cbb90', '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/0ad749f4-d4ea-4a83-992d-a6bc752cbb90 Openstack-Request-Id: req-467d8f9a-fdbf-4140-9d1f-89500ef16c69 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openst ack-Ironic-Api-Version: 1.40 {"uuid": "0ad749f4-d4ea-4a83-992d-a6bc752cbb90", "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/0ad749f4-d4ea-4a83-992d-a6bc752cbb90", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/ports", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/states", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/volume", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/volume", "rel": "bookmark"}]} GET /v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12a778c5-b29c-4252-be14-69ffcafb38ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "0ad749f4-d4ea-4a83-992d-a6bc752cbb90", "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/0ad749f4-d4ea-4a83-992d-a6bc752cbb90", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/ nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/ports", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/states", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/volume", "rel": "self"}, {"href": "http://localhost/nodes/0ad749f4-d4ea-4a83-992d-a6bc752cbb90/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '494718b3-05ed-4ad9-8611-4bbbb4baec2c', '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/494718b3-05ed-4ad9-8611-4bbbb4baec2c Openstack-Request-Id: req-99e0c5b8-ac8a-4275-9812-ce3e735c336b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "494718b3-05ed-4ad9-8611-4bbbb4baec2c", "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/494718b3-05ed-4ad9-8611-4bbbb4baec2c", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/ports", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/states", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/volume", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/volume", "rel": "bookmark"}]} GET /v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55dea229- ce51-4843-ac16-23f91b1cffef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "494718b3-05ed-4ad9-8611-4bbbb4baec2c", "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/494718b3-05ed-4ad9-8611-4bbbb4baec2c", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/ports", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/states", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/volume", "rel": "self"}, {"href": "http://localhost/nodes/494718b3-05ed-4ad9-8611-4bbbb4baec2c/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '289aaa62-489c-45e4-b2ef-390f82e5c2be', '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/289aaa62-489c-45e4-b2ef-390f82e5c2be Openstack-Request-Id: req-e584ebcd-df74-4add-b6c0-e982eee40d14 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "289aaa62-489c-45e4-b2ef-390f82e5c2be", "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/289aaa62-489c-45e4-b2ef-390f82e5c2be", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/ports", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/states", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/volume", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/volume", "rel": "bookmark"}]} GET /v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56656b80-ecc5-4752-839d-2dd33447e1cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "289aaa62-489c-45e4-b2ef-390f82e5c2be", "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/289aaa62-489c-45e4-b2ef-390f82e5c2be", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/ports", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/states", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/volume", "rel": "self"}, {"href": "http://localhost/nodes/289aaa62-489c-45e4-b2ef-390f82e5c2be/volume", "rel": "bookmark"}]} POST /v1/nodes WIT H {'uuid': 'ea305223-7d71-4d7b-8230-3c9b2f2662ce', '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/ea305223-7d71-4d7b-8230-3c9b2f2662ce Openstack-Request-Id: req-1f00dbbe-441f-43a1-9efa-9ffaefede902 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ea305223-7d71-4d7b-8230-3c9b2f2662ce", "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/ea305223-7d71-4d7b-8230-3c9b2f2662ce", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/ports", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/states", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/volume", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/volume", "rel": "bookmark"}]} GET /v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6fc09fb-d81a-4cd4-a2b4-aeaaa8fd18a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ea305223-7d71-4d7b-8230-3c9b2f2662ce", "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/ea305223-7d71-4d7b-8230-3c9b2f2662ce", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/ports", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/states", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/volume", "rel": "self"}, {"href": "http://localhost/nodes/ea305223-7d71-4d7b-8230-3c9b2f2662ce/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '43d99b73-87fb-4847-b09b-05308238d30c', '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/43d99b73-87fb-4847-b09b-05308238d30c Openstack-Request-Id: req-482e9276-17a3-47af-808f-5bf3d7a16f29 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "43d99b73-87fb-4847-b09b-05308238d30c", "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/43d99b73-87fb-4847-b09b-05308238d30c", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/ports", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/states", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/volume", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/volume", "rel": "bookmark"}]} GET /v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-067df582-8d5d-4981-bfb5-54125fe0dc67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "43d99b73-87fb-4847-b09b-05308238d30c", "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/43d99b73-87fb-4847-b09b-05308238d30c", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/ports", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/states", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/43d99b73-87fb-4847-b09b-05308238d30c/volume", "rel": "self"}, {"href": "http://localhost/nodes/43d99b73-87fb-4847-b09b-05308238d30c/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '45234f60-c14b-49c5-ae9f-587421313851', '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/45234f60-c14b-49c5-ae9f-587421313851 Openstack-Request-Id: req-ac82b179-70ae-4785-843e-2628ccd4d5b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Versi on: 1.40 {"uuid": "45234f60-c14b-49c5-ae9f-587421313851", "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/45234f60-c14b-49c5-ae9f-587421313851", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/45234f60-c14b-49c5-ae9f-587421313851/ports", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45234f60-c14b-49c5-ae9f-587421313851/states", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45234f60-c14b-49c5-ae9f-587421313851/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45234f60-c14b-49c5-ae9f-587421313851/volume", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/volume", "rel": "bookmark"}]} GET /v1/nodes/45234f60-c14b-49c5-ae9f-587421313851 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9dad7cbc-bd9e-4a83-9ae3-fb4adcd237d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "45234f60-c14b-49c5-ae9f-587421313851", "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/45234f60-c14b-49c5-ae9f-587421313851", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/45234f60-c14b- 49c5-ae9f-587421313851/ports", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45234f60-c14b-49c5-ae9f-587421313851/states", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45234f60-c14b-49c5-ae9f-587421313851/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45234f60-c14b-49c5-ae9f-587421313851/volume", "rel": "self"}, {"href": "http://localhost/nodes/45234f60-c14b-49c5-ae9f-587421313851/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '95445b1a-010e-4f79-adb8-3bdd8ab3efd1', '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/95445b1a-010e-4f79-adb8-3bdd8ab3efd1 Openstack-Request-Id: req-67054909-55a2-43c8-a4ad-565fd43b5660 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "95445b1a-010e-4f79-adb8-3bdd8ab3efd1", "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/95445b1a-010e-4f79-adb8-3bdd8ab3efd1", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/ports", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/states", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/volume", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/volume", "rel": "bookmark"}]} GET /v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9fdfc708-7a68-4076-8c0c-55ae6 92282f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "95445b1a-010e-4f79-adb8-3bdd8ab3efd1", "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/95445b1a-010e-4f79-adb8-3bdd8ab3efd1", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/ports", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/states", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/volume", "rel": "self"}, {"href": "http://localhost/nodes/95445b1a-010e-4f79-adb8-3bdd8ab3efd1/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '753b47ab-b6af-423d-b572-ffe7cafb6348', '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/753b47ab-b6af-423d-b572-ffe7cafb6348 Openstack-Request-Id: req-b0c2925a-c073-4b86-9875-74fc80268f3d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "753b47ab-b6af-423d-b572-ffe7cafb6348", "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/753b47ab-b6af-423d-b572-ffe7cafb6348", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/ports", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/states", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/volume", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/volume", "rel": "bookmark"}]} GET /v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f9ad301-3d00-4991-b340-5975ac647dfc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "753b47ab-b6af-423d-b572-ffe7cafb6348", "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/753b47ab-b6af-423d-b572-ffe7cafb6348", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/ports", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/states", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/volume", "rel": "self"}, {"href": "http://localhost/nodes/753b47ab-b6af-423d-b572-ffe7cafb6348/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '89ba4ad6-312 5-4b4c-bc57-e0da1578b155', '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/89ba4ad6-3125-4b4c-bc57-e0da1578b155 Openstack-Request-Id: req-8ef084a8-5692-4fe8-b053-3590d24899a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "89ba4ad6-3125-4b4c-bc57-e0da1578b155", "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/89ba4ad6-3125-4b4c-bc57-e0da1578b155", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/ports", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/states", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/volume", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/volume", "rel": "bookmark"}]} GET /v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ae892f7-54f5-48d3-bd3c-8e3b6cbb2d5b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "89ba4ad6-3125-4b4c-bc57-e0da1578b155", "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/89ba4ad6-3125-4b4c-bc57-e0da1578b155", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/ports", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/states", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/volume", "rel": "self"}, {"href": "http://localhost/nodes/89ba4ad6-3125-4b4c-bc57-e0da1578b155/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '32732984-c8a9-4ac0-859d-98d203acfb4f', '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/32732984-c8a9-4ac0-859d-98d203acfb4f Openstack-Request-Id: req-3c853228-2a8a-4173-bdad-8d830d819df6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "32732984-c8a9-4ac0-859d-98d203acfb4f", "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/32732984-c8a9-4ac0-859d-98d203acfb4f", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/ports", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/states", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/volume", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/volume", "rel": "bookmark"}]} GET /v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39c0c1d5-1881-4c4e-9ac6-850d7cc0f1ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "32732984-c8a9-4ac0-859d-98d203acfb4f", "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/32732984-c8a9-4ac0-859d-98d203acfb4f", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/ports", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/states", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/volume", "rel": "self"}, {"href": "http://localhost/nodes/32732984-c8a9-4ac0-859d-98d203acfb4f/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history [0.049310s] ... 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-88294152-9f09-4f8c-bb77-8e80e68fe01c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.106978s] ... 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-b71187d9-1745-4a47-b18a-ab8ce7a4d30b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail [0.047649s] ... 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-025a3b08-38ce-486a-a75c-9d969f5062eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "c1808e42-6b2e-4542-8046-6a8c511ae10e", "created_at": "2025-05-30T17:31:48.998614+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/c1808e42-6b2e-4542-8046-6a8c511ae10e", "rel": "self"}]}, {"uuid": "d4513855-59e1-4aad-9e5a-106599944b36", "created_at": "2025-05-30T17:31:48.999500+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/d4513855-59e1-4aad-9e5a-106599944b36", "rel": "self"}]}, {"uuid": "03e215bc-6666-4744-bb1b-da7fc5ae2320", "created_at": "2025-05-30T17:31:49.000146+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/03e215bc-6666-4744-bb1b-da7fc5ae2320", "rel": "self"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.096338s] ... 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/e068336b-82a3-41d4-b7ed-d32d2c8e5815 Openstack-Request-Id: req-fbec4a3a-0407-4b42-bbdd-35343231a4be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e068336b-82a3-41d4-b7ed-d32d2c8e5815", "created_at": "2025-05-30T17:31:49.000865+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e068336b-82a3-41d4-b7ed-d32d2c8e5815", "rel": "self"}, {"href": "http://localhost/deploy_templates/e068336b-82a3-41d4-b7ed-d32d2c8e5815", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/e068336b-82a3-41d4-b7ed-d32d2c8e5815 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae3d6151-10e7-46d5-9c59-c21164e8c1fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e068336b-82a3-41d4-b7ed-d32d2c8e5815", "created_at": "2025-05-30T17:31:49.000865+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e068336b-82a3-41d4-b7ed-d32d2c8e5815", "rel": "self"}, {"href": "http://localhost/deploy_templates/e068336b-82a3-41d4-b7ed-d32d2c8e5815", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.048909s] ... 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-556df77d-0974-4ade-a2c3-73a7394aaf92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "d8ba105c-d286-4f59-af94-3e4ce3ab934b", "created_at": "2025-05-30T17:31:49.051844+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d8ba105c-d286-4f59-af94-3e4ce3ab934b", "rel": "self"}]}, {"uuid": "15b5c265-fe2d-4cef-a3e4-dc016574b785", "created_at": "2025-05-30T17:31:49.052537+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/15b5c265-fe2d-4cef-a3e4-dc016574b785", "rel": "self"}]}, {"uuid": "eaada63c-3b93-43f5-882c-6308cf6e4cfa", "created_at": "2025-05-30T17:31:49.053231+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/eaada63c-3b93-43f5-882c-6308cf6e4cfa", "rel": "self"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.049723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a92cf900-00db-437b-a6d8-12f812a7134e', '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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_with_sort [0.049667s] ... 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-7fdff5b4-d89b-41c9-8ef5-85d8d13ddd66 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "be4b47fb-dac3-427a-970a-e72b7f4c8004", "created_at": "2025-05-30T17:31:49.104921+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/be4b47fb-dac3-427a-970a-e72b7f4c8004", "rel": "self"}]}, {"uuid": "6740bac1-6eef-414a-a323-f81bcaf06b1b", "created_at": "2025-05-30T17:31:49.104284+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6740bac1-6eef-414a-a323-f81bcaf06b1b", "rel": "self"}]}, {"uuid": "4a9e00e1-8da5-49cb-b099-d96525609131", "created_at": "2025-05-30T17:31:49.103578+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4a9e00e1-8da5-49cb-b099-d96525609131", "rel": "self"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.078896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'cc193e46-b0b6-4aff-acbd-b5c792fd5b0c', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a1bededa-141d-4c5c-af56-5bedb227dd17 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.041406s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.211140s] ... 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-5ea4ed1d-d060-4228-99b5-4eaf7a687f01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-14fdef87-451f-459d-a2a7-c1f260a5d7d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-1715b364-f2b7-44d8-9e1d-62f846b6a8aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-6aae7c02-6511-408c-8c5f-4cba5521c9a0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-f58dbd92-8148-4ca4-894c-d8d7c2e288f0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-211ecba5-fa47-4824-b6de-5125e4c0db33 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-962a2c9b-3a03-407e-a88c-7dd3753a937c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-443d8d05-f15c-48c1-900a-653d2b8271b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.064390s] ... 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-b004d2d4-92be-4a65-ad8c-8aac46e98ce2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "ef60c7f3-f7b5-4600-8c0c-f55f1623955b", "created_at": "2025-05-30T17:31:49.188828+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/ef60c7f3-f7b5-4600-8c0c-f55f1623955b", "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=ef60c7f3-f7b5-4600-8c0c-f55f1623955b"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=ef60c7f3-f7b5-4600-8c0c-f55f1623955b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87efe00f-7baa-46a4-ad86-b227f89e89c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "3a629a6f-4f97-4935-b346-44826f506129", "created_at": "2025-05-30T17:31:49.189541+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3a629a6f-4f97-4935-b346-44826f506129", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-05-30T17:31:49Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=ef60c7f3-f7b5-4600-8c0c-f55f1623955b)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=3a629a6f-4f97-4935-b346-44826f506129"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=3a629a6f-4f97-4935-b346-44826f506129 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11823ccb-c1d6-47bb-bbf6-513fa7fd2a7b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "cd6d59b5-3b24-4f4c-90f9-e747ddcde8f5", "created_at": "2025-05-30T17:31:49.190192+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cd6d59b5-3b24-4f4c-90f9-e747ddcde8f5", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-05-30T17:31:49Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=3a629a6f-4f97-4935-b346-44826f506129)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=cd6d59b5-3b24-4f4c-90f9-e747ddcde8f5"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.069844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'ac654803-eff2-45ef-bfde-4669c858d3cb', '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-d63b72cb-7578-448b-bfcb-2bb84ead3c6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPost.test_create_node_specify_traits [0.068881s] ... 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-e800fb44-a6df-44b5-9dfc-2bdc3b7ccf9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item [0.050401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/787d2f24-2a80-4a57-b489-d02771e2c33c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-534244e8-6052-4828-b665-91e7287a5d5e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"uuid": "787d2f24-2a80-4a57-b489-d02771e2c33c", "created_at": "2025-05-30T17:31:49.259147+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/787d2f24-2a80-4a57-b489-d02771e2c33c", "rel": "self"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.063857s] ... 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-a7bc578d-15cd-4ba3-a75c-c9da67f751b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestNodeHistory.test_get_history_item_not_found [0.039245s] ... 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-b5e56d13-9908-470d-85e8-6c7d9248cde0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.102319s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '092ef0f1-3ab3-4604-a652-369e2d795884', '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-a611798c-fb07-49c0-8180-e4e52411f331 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version [0.044017s] ... 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.TestPost.test_create_node_valid_driver_info [0.098259s] ... 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-cbdb2811-8d1d-4473-9af7-dab846d71603 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.375300+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-53ff5cad-2c2b-4358-bf17-e7adcc37bcbf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.375300+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_node.TestNodeInventory.test_get_inventory [0.039503s] ... 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-d08f9528-8068-453b-86f8-64d48432c81c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestNodeInventory.test_get_inventory_no_inventory [0.038939s] ... 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-5e58f117-bdf8-41f3-93bb-5f4411afb2cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.135597s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 42, 'uuid': '5ee980ad-5348-48fe-ac00-d1659de83103', '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-6893dceb-8d9f-4870-9edd-38870eb68086 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestNodeInventory.test_get_old_version [0.030371s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.084367s] ... 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-98a78441-b84a-46ea-8093-91d376bcbb37 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.469031+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-3e0d02a4-d520-4cc1-ae78-6401827964bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.469031+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_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.060187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb007690-1683-41b0-bf1c-a0617065804a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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": "6e445bd5-e93e-4b22-a187-d0dd782899ea", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6e445bd5-e93e-4b22-a187-d0dd782899ea", "rel": "self"}, {"href": "http://localhost/nodes/6e445bd5-e93e-4b22-a187-d0dd782899ea", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.038650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f01f1fb2-94ee-4dea-abb6-cda48a1783ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 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": "83e4b465-6cbb-4881-8ba3-34f6a83f93df", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/83e4b465-6cbb-4881-8ba3-34f6a83f93df", "rel": "self"}, {"href": "http://localhost/nodes/83e4b465-6cbb-4881-8ba3-34f6a83f93df", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.604804s] ... 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-9f68f81e-32e8-4ecd-8a9b-d65932e7d2b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.037025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8fef79c7-abbd-4c52-b732-cfaef2a868a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.157909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': None, 'uuid': '24b4c047-972d-4216-8d89-21ea6d71cf52', '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-0e29a1b5-f390-42fe-a2da-4a253816ea74 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.167463s] ... 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-f202e169-3f09-450e-8f16-713769543373 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.624592+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-4622fa23-033b-4ee9-b586-46d8cb2c4dd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.624592+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.038534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7d77c61a-e694-4f6e-9e7a-a9a10ee4e64a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.047380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f505c13a-486d-4e2e-b6ff-7255e0c4cd2a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.093479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '13f826c1-04ad-4750-9ffe-38a46a2cee71', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-48f7a310-bb39-4c46-8bac-ca2a8c06f090 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.136875s] ... 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-8655d6ff-b033-49c7-837d-d3eb2a142af1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.069909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'c31e69e0-7517-4f66-9a9b-b2341cb9606c', '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-8aa8d43e-3414-419b-ae9b-ee09adc09e60 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.081277s] ... 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-e4a34ee9-4f3a-488d-9cb0-f2fec35cabb6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.172438s] ... 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-eea6ac94-51a7-4e64-a483-7b10582a4f78 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.809050+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-af38064d-ad34-4d25-9064-f9b308af2d9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.809050+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.TestNodeShardGets.test_filtering_by_sharded [0.125800s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb211909-39b2-4f7b-b2d4-a692dc76e149 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-b4f63ea3-8166-4cd6-a84b-e4ccb118eaa8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "791449fb-ed58-4d6c-ac5b-af24d59613fd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/791449fb-ed58-4d6c-ac5b-af24d59613fd", "rel": "self"}, {"href": "http://localhost/nodes/791449fb-ed58-4d6c-ac5b-af24d59613fd", "rel": "bookmark"}]}, {"uuid": "6dd372d9-21e9-4a47-b31c-120dc52f3e27", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6dd372d9-21e9-4a47-b31c-120dc52f3e27", "rel": "self"}, {"href": "http://localhost/nodes/6dd372d9-21e9-4a47-b31c-120dc52f3e27", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_single_shard_detail [0.044659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c6bca20-c45b-463a-af26-d7fa76de0804 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.877615+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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.050599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd1d62af-587e-410f-978c-a5571b0697b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.924990+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_conductor_group [0.128705s] ... 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-7d81ebc4-eb69-4ab4-985d-fe39b0f6c812 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.944170+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-77f065a2-09ac-49c7-a924-241b5f8b5853 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:49.944170+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.169270s] ... 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-8a6dcd58-5fec-4d81-86a6-15f1cee7717f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-7085b2bb-e04f-4860-90c7-9d4e4773216e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-75324d20-8b03-4274-b961-ee959340f70c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.075517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0f7eee3-c73a-4a0d-8186-28dbea3c71ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.002719+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.TestPost.test_create_node_with_default_resource_class [0.079342s] ... 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-84e2fc25-7e59-484e-9ab8-ecfeb4568ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.024338+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-be013f0a-4cdf-46e9-9ad4-37a5a1a4251f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.024338+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_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.053039s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.069873s] ... 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-937b791b-e971-43bb-83b7-3da00baaf8de X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.044325s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.154653s] ... 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-9dd4802a-d2e8-4b0f-89f9-cb0dd16d0930 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-afac1898-ef8c-471a-9ed4-07beaf7aae2f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-c646ec5a-366b-4679-a038-45de81b1f2f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.040958s] ... 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-eeaae768-398e-4b18-840d-28a1feb910ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_add_chassis_id [0.048224s] ... 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-33022af7-bd05-4a39-bc65-58e82ca953f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPost.test_post_ports_subresource [0.058892s] ... 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-67a69cc0-8344-4575-8348-74ac34ea2198 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPost.test_post_ports_subresource_no_node_id [0.028222s] ... 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_node.TestPatch.test_add_chassis_uuid [0.099389s] ... 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-a975e230-7f2a-400e-9d03-367b457f23b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.192947+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.TestPost.test_post_volume_connectors_subresource [0.035772s] ... 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-edbc1825-7e1a-4406-9907-764e084d530c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.026397s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.161962s] ... 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-12ccc719-3e90-4659-af8a-65b3dcacaaf7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-0bd28277-7bc9-4ab1-a34c-239ebaa2edf3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-f16810a6-bf24-4146-a415-3927f9df10b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.530199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'f2fd6a24-6bbf-4789-a077-a47dfbf55dd8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c8b113ca-afc6-403a-8bef-ff095abdc977 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.035770s] ... 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-99aedd81-ec1e-4655-9160-feb05724cbae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.035680s] ... 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-e0032ed8-e3e7-4812-9872-a3ff21afb13b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.110790s] ... 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-d72c5787-5b24-4893-b9bc-1bc59cee14cb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.291693+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_deploy_template.TestPost.test_create_invalid_step_field_foo [0.064794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '24ad0d48-d53d-4f2b-adfc-c59c6317d072', '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-f4905d65-07e3-4941-bc53-0e40021236fa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver [0.100700s] ... 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-5a4ceb68-e5b3-4d25-bb3c-18fbd5dcc04c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPost.test_vendor_passthru_by_name [0.036341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted Openstack-Request-Id: req-a1692b11-3436-4865-b5c1-44c8086a3b2c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.031940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-03ae6140-40d3-481d-b867-19b16d623f4f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.069292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6d26ccd2-2802-416f-9a90-c93cb1e6b5b1', '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-18dab780-61ef-4d84-bff6-52eb4ce1e79c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.067393s] ... 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-a74ab5a9-66f6-46f2-a0c2-a56bf65f7433 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.039327s] ... 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-15926af6-d977-4a07-9940-2b43253555cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_add_root [0.109945s] ... 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-26ce16bc-b4bd-42a0-9a8c-c04921e3a5ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.411918+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.TestPost.test_vendor_passthru_methods [0.040280s] ... 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-4725390d-ee7d-48e6-84c6-8df168a43f77 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-4f9ecb1b-1863-4320-a044-94cac1b49d83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.067454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '32eb9fc8-da82-4f04-b86c-d8bfb2644902', '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-23783990-7161-4a68-b69d-4bb37d97ff8c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.043935s] ... 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-0e5c41ca-ff64-49cc-819a-f731ea71a9a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.035480s] ... 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-061416f1-48b6-4a71-a142-21dbad876065 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_boot_mode_invalid_request [0.083173s] ... 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-aef16b45-b50b-4c77-8f5b-0e7656cbc556 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.049961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ef0e824c-d9cd-4727-99ff-d20c1f6c3643 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-46d10305-67b6-4c5b-b186-63ac9ef38cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ef0e824c-d9cd-4727-99ff-d20c1f6c3643 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.063684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'c03ef281-dc63-445d-909f-01d42b3c069a', '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-7c912b27-5c0f-4198-8288-83a99b2abddb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.038880s] ... 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-47d1f2df-6145-4ab9-937a-4ff9cd4d714c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.031596s] ... 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-2d26599e-64c0-4709-8ddc-4f7787c23fba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"cat": "meow"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.078085s] ... 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-a8cb6340-ca1c-4f28-b312-18e76b2c8409 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPost.test_vendor_passthru_without_method [0.028590s] ... 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-92f65ce0-3387-4840-90fe-768343c4d41f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPost.test_create_invalid_step_field_priority [0.066607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '5a63bb73-e845-45a9-80a0-ebb991c6cfe2', '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-f1246f53-0b2b-4ab2-899f-501b573cc243 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.105360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/183127ba-0cf7-45e1-99b0-8a31a5263f8b WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b85ff1ab-4fe7-4f6b-953b-2ac1a9253420 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "183127ba-0cf7-45e1-99b0-8a31a5263f8b", "created_at": "2025-05-30T17:31:50.635082+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/183127ba-0cf7-45e1-99b0-8a31a5263f8b", "rel": "self"}, {"href": "http://localhost/nodes/183127ba-0cf7-45e1-99b0-8a31a5263f8b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/183127ba-0cf7-45e1-99b0-8a31a5263f8b/ports", "rel": "self"}, {"href": "http://localhost/nodes/183127ba-0cf7-45e1-99b0-8a31a5263f8b/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.048559s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83035bbe-ef9d-4629-9e87-97a245b94838 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "246bc115-342a-4f48-b685-b9b4dcfe53d6", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/246bc115-342a-4f48-b685-b9b4dcfe53d6", "rel": "self"}, {"href": "http://localhost/ports/246bc115-342a-4f48-b685-b9b4dcfe53d6", "rel": "bookmark"}]}, {"uuid": "d824f87c-cd28-48f7-8d42-eb5661f13516", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d824f87c-cd28-48f7-8d42-eb5661f13516", "rel": "self"}, {"href": "http://localhost/ports/d824f87c-cd28-48f7-8d42-eb5661f13516", "rel": "bookmark"}]}, {"uuid": "3f9f3e6f-1491-4525-93e0-c0c87d0e8991", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/3f9f3e6f-1491-4525-93e0-c0c87d0e8991", "rel": "self"}, {"href": "http://localhost/ports/3f9f3e6f-1491-4525-93e0-c0c87d0e8991", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=3f9f3e6f-1491-4525-93e0-c0c87d0e8991"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.074697s] ... 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-6fed8d5b-6b35-4da9-88fc-df71ec854666 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.065103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '8daf0628-69fe-49cf-a163-4e9bf438bb09', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8f27cfa4-0c9c-49c1-a2cb-804c11cc821f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPatch.test_patch_add_name_empty_invalid [0.063416s] ... 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-a7e0a5d9-acd6-424b-b3d2-2d3f1217ba55 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.054404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e2246e9-6c77-4a53-a1a0-9cc9ffdb2504 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "c98dad7d-e513-4cd2-93f7-822e746d5267", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/c98dad7d-e513-4cd2-93f7-822e746d5267", "rel": "self"}, {"href": "http://localhost/ports/c98dad7d-e513-4cd2-93f7-822e746d5267", "rel": "bookmark"}]}, {"uuid": "8595b1cc-0d1e-497b-947d-e83df1724bf8", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/8595b1cc-0d1e-497b-947d-e83df1724bf8", "rel": "self"}, {"href": "http://localhost/ports/8595b1cc-0d1e-497b-947d-e83df1724bf8", "rel": "bookmark"}]}, {"uuid": "aed47af2-d79c-47e7-bdb6-d93457d0ee15", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/aed47af2-d79c-47e7-bdb6-d93457d0ee15", "rel": "self"}, {"href": "http://localhost/ports/aed47af2-d79c-47e7-bdb6-d93457d0ee15", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=aed47af2-d79c-47e7-bdb6-d93457d0ee15"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.082327s] ... 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-ad5d1a6c-3b9e-4db8-b2b6-dab1d584bff0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.070643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'bb6be393-3783-4062-8984-66f9089b1ba2', '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/bb6be393-3783-4062-8984-66f9089b1ba2 Openstack-Request-Id: req-0b3405ea-e193-4954-85f8-c050f61a8802 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "bb6be393-3783-4062-8984-66f9089b1ba2", "created_at": "2025-05-30T17:31:50.786524+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bb6be393-3783-4062-8984-66f9089b1ba2", "rel": "self"}, {"href": "http://localhost/deploy_templates/bb6be393-3783-4062-8984-66f9089b1ba2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.054606s] ... 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-6022a15b-8751-4626-9542-3fa5a1f11769 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_collection_links_default_limit [0.048008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-023a13af-6b3c-4335-9ada-f9a7aa6ac119 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "13a85820-51e4-4a3e-86b1-7375976cb905", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/13a85820-51e4-4a3e-86b1-7375976cb905", "rel": "self"}, {"href": "http://localhost/ports/13a85820-51e4-4a3e-86b1-7375976cb905", "rel": "bookmark"}]}, {"uuid": "d9f3fe23-9ea4-4acc-98ce-2011d782159f", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d9f3fe23-9ea4-4acc-98ce-2011d782159f", "rel": "self"}, {"href": "http://localhost/ports/d9f3fe23-9ea4-4acc-98ce-2011d782159f", "rel": "bookmark"}]}, {"uuid": "61008069-b02a-4d7b-ba8b-43b859a839cf", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/61008069-b02a-4d7b-ba8b-43b859a839cf", "rel": "self"}, {"href": "http://localhost/ports/61008069-b02a-4d7b-ba8b-43b859a839cf", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=61008069-b02a-4d7b-ba8b-43b859a839cf"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.047783s] ... 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-20654d8e-014b-4b76-936d-917ea1243c02 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.060464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': '0a708579-7e69-4a40-983d-28c2c4642bdb', '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-f03c7c5b-3e63-448b-992c-90825d1b3d18 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.045525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0bf20434-a338-407b-851d-12467d972325 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:31:50.843283+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.093124s] ... 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-68b54a79-c1d9-4d48-ae9f-6ffff18a881f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.028860s] ... 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-fb7ee5d3-5d6c-4338-b242-1c471907b4a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPost.test_create_name_invalid_too_long [0.068420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '73c4acb1-a1d6-424a-9631-004be78a8687', '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-f58364b9-5686-4f38-9b7d-ff2e92f03a37 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.039786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b27cbced-9c23-4782-9351-7ecf182a93f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_detail_by_node_name_ok [0.033540s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3ddbd8e2-8333-44fa-8ddf-1176119310ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.956043+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_node.TestPatch.test_patch_add_name_ok [0.115846s] ... 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-7423e977-c9a8-451c-a612-d4bec6acf76f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:50.907812+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.099792s] ... 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-6574d333-43e0-43d0-a64c-456b2c369e98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.70 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.073183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'uuid': 'f4b8aa75-09ac-4e89-8776-3d69c5ca5479', '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-1cf5644e-21f8-4e5d-95a1-27408c933bc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.037788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3518edc4-b11a-4f15-a416-f7d4a4a0b6dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:31:50.993591+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.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.062132s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9fbec1d6-8b87-4441-b0a8-c171db2eb7d6', 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-539dd357-9426-4afc-be93-85b37dbc6284 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.065471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ad5c7b1-7dbf-4fe0-85d6-9af185d65e85 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-9c3bd954-4ef8-4c41-a222-b3813b8043e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.091389s] ... 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-7163fa0d-fc2f-40f3-b1ad-5c843a229b3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.112939s] ... 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-601e741e-76eb-48f7-9107-1d53ae8b8502 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-8c281232-c0e5-4c73-8afa-169604b16d2c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-81f38726-ebb7-4924-8cd8-972e5027d35b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-9f8e8524-d053-4a41-89a4-b3773e3c9fa9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-11a71387-d8f2-40c9-8f47-4328daf52b84 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-6fac81c8-8c56-4f37-bba6-0c5096e39948 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_detail_sort_key_allowed [0.036609s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a149b58-3533-4c8d-99e2-6094347d0db5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "e5057516-af07-4dc6-85ed-2d43f91dd126", "created_at": "2025-05-30T17:31:51.094480+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/e5057516-af07-4dc6-85ed-2d43f91dd126", "rel": "self"}, {"href": "http://localhost/ports/e5057516-af07-4dc6-85ed-2d43f91dd126", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "dd43813c-9c05-4df6-b208-50020caf0a52", "created_at": "2025-05-30T17:31:51.097927+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/dd43813c-9c05-4df6-b208-50020caf0a52", "rel": "self"}, {"href": "http://localhost/ports/dd43813c-9c05-4df6-b208-50020caf0a52", "rel": "bookmark"}], "portgroup_uuid": null}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.068680s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '1a0de402-7c82-4950-b858-e99b963db2c9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ffe0c9e-bfd6-4c9a-aa3c-d3005052752a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.027375s] ... 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-e0f6f6bf-f632-4b5d-b9ec-0e85a07d34d2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.029157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9cb5299d-6f56-43da-bfcc-359ffaf59603 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPut.test_clean_no_cleansteps [0.086578s] ... 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-d58900df-6313-4836-9430-cf005f36f5ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_detail_using_query_false_and_fields [0.035159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7af18a76-2ab2-4749-a23c-db62fabe6707 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.068450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9c2eee8a-1805-42eb-a5c5-7149bd1aaa7c', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d115267-7940-4151-8834-968f3acea61c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.028905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a7838254-c009-49ec-8f30-64092b38c4cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.027108s] ... 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-851177ab-4694-4a85-85a6-b091353fc053 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks [0.099358s] ... 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-71d76bf9-3e5b-4092-ba38-ec133b70e614 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.069030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '935e86ef-0608-4cef-9cc1-5389eff1d264', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-22229029-15c6-4a47-8bf6-963515dc275f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.035840s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-952155e2-6f3a-4fb5-819e-c6155d11f79d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.237281s] ... 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-9299c7fb-9872-4307-9966-2a005b1bc41e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.066187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b5f3cb91-e5db-4c56-b112-3d37e05ffdf2', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c649f1ca-4331-4a38-8bf3-c307c5228b0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin [0.052161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0259fafd-ec5e-4f4c-a43f-55daea5e06a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "424ae754-f5b5-45d9-a792-f4cfd20f14b2", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/424ae754-f5b5-45d9-a792-f4cfd20f14b2", "rel": "self"}, {"href": "http://localhost/ports/424ae754-f5b5-45d9-a792-f4cfd20f14b2", "rel": "bookmark"}]}, {"uuid": "53959453-78bc-4506-be83-84f918d57c1e", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/53959453-78bc-4506-be83-84f918d57c1e", "rel": "self"}, {"href": "http://localhost/ports/53959453-78bc-4506-be83-84f918d57c1e", "rel": "bookmark"}]}, {"uuid": "58fdc427-967a-4dff-a773-37217246fe08", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/58fdc427-967a-4dff-a773-37217246fe08", "rel": "self"}, {"href": "http://localhost/ports/58fdc427-967a-4dff-a773-37217246fe08", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.047551s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c47fb871-cb51-4748-bfeb-f7c2010f35ee WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '4892f083-99f0-4946-a969-08d4d1752e73'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-af788192-b25a-47b0-8b31-737eb5ac8a3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks_unapproved [0.106973s] ... 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-8a0a0bad-46bd-48bf-890c-818dfcec9206 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.053909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15fd4bb7-d668-4c4d-a3f4-69aff282b573 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": []} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.070376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': 'fce1a322-bf89-4403-aa35-d40f2d8e7554', '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/fce1a322-bf89-4403-aa35-d40f2d8e7554 Openstack-Request-Id: req-db540352-ba2e-47fc-a4c6-687e1025b1a1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "fce1a322-bf89-4403-aa35-d40f2d8e7554", "created_at": "2025-05-30T17:31:51.407599+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fce1a322-bf89-4403-aa35-d40f2d8e7554", "rel": "self"}, {"href": "http://localhost/deploy_templates/fce1a322-bf89-4403-aa35-d40f2d8e7554", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.050780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3cfc816b-1c04-42c0-b37d-5d179a1b16a0 WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '4adb6b9e-e6a3-4cab-994b-1e02f9a607ff'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-111bc845-02b2-4fd8-9df8-97da213f6b5d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_get_all_by_node_name_not_supported [0.040844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b184a7f7-37eb-42cd-be19-9f17e3d0b487 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_inject_nmi [0.077609s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-6cdf2f7b-760c-4e8a-b5ec-8fb136b8228b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.044982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7f294207-dab4-4662-abcf-81b874e77f79 WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4894b11e-0021-44e3-9593-e5fc03f91dec X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_deploy_template.TestPost.test_create_step_string_priority [0.075686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '2c60b754-df86-4ced-8c13-a819e82ab41f', '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/2c60b754-df86-4ced-8c13-a819e82ab41f Openstack-Request-Id: req-653cd356-86e5-462a-9f38-06cf10920285 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "2c60b754-df86-4ced-8c13-a819e82ab41f", "created_at": "2025-05-30T17:31:51.483796+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2c60b754-df86-4ced-8c13-a819e82ab41f", "rel": "self"}, {"href": "http://localhost/deploy_templates/2c60b754-df86-4ced-8c13-a819e82ab41f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.054468s] ... 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-d690a36a-442f-447b-979d-2bdc49e39bd1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.045861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8749449a-0dea-4bd1-a0eb-bd4de76fccb6 WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1651e785-8a57-4876-b16a-0c7b47c72d89 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.066767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'e53741a8-2c20-48f2-afb0-748ae8ba71f6', '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-ef3dabd2-c614-41ec-9067-eb1368bf7bc7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestPut.test_inject_nmi_not_supported [0.051096s] ... 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-f2a64283-a99e-49e3-b1d9-35b18e7caa11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.036724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88046104-1388-43c4-95bf-5045ed8ea2ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.028916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89d6a409-5cf6-47ea-b206-94a1a31e15bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.110135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f9439642-2da4-4318-ad1e-49b76a28ad2e WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a03d28d8-3fa9-46eb-8fb2-1a9ce1d70afa X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.090881s] ... 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-43afdd33-5e72-48e3-ad53-75baeb011ef8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.211584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d08e264-7e65-4ff2-baf4-8abe565d6ccb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "a7f329e5-2fd5-4dba-ba1d-8f0b9f16ae1e", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a7f329e5-2fd5-4dba-ba1d-8f0b9f16ae1e", "rel": "self"}, {"href": "http://localhost/ports/a7f329e5-2fd5-4dba-ba1d-8f0b9f16ae1e", "rel": "bookmark"}]}, {"uuid": "6db4cb01-b3ef-4322-ac60-3a04f3b05fc6", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/6db4cb01-b3ef-4322-ac60-3a04f3b05fc6", "rel": "self"}, {"href": "http://localhost/ports/6db4cb01-b3ef-4322-ac60-3a04f3b05fc6", "rel": "bookmark"}]}, {"uuid": "cfa44079-46ee-45a0-96c5-cca5c495a44e", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/cfa44079-46ee-45a0-96c5-cca5c495a44e", "rel": "self"}, {"href": "http://localhost/ports/cfa44079-46ee-45a0-96c5-cca5c495a44e", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.029601s] ... 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-446a0252-89de-43c8-9138-7bb08e3e4d2a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.063035s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/49ce86f9-0ade-4c61-8625-df8a05e7258c WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a786ac6-e2ab-482a-995d-bbdb9bcc0c40 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.029424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-60a83929-6869-4df4-b215-5620bee18099 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.041649s] ... 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-acbe7b3a-8494-4c41-a40a-7ee3dfa2d233 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:51.681621+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.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.024285s] ... 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-1f13824b-19a4-4817-af10-967c351016c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.090174s] ... 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-ff9e5c38-b0ca-461e-955c-723bc60ac9e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_driver_vendor_passthru_get [0.031455s] ... 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-a54c9e73-9df9-4240-80a7-c1a6323fcad2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.060476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5406797c-fa50-4e52-ae5a-7e5c4adb8926 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:51.740512+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.022942s] ... 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-0ab8bd38-f9be-413a-a25d-dfd3b18220b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.099790s] ... 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-5474354f-4b09-4526-8fce-f49e44e988e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:51.721927+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_port.TestListPorts.test_get_all_by_portgroup_uuid [0.040521s] ... 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-953c24f2-98a4-46ba-ad7a-8f64d22e9f0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:51.784164+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.038999s] ... 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-0666c114-89fa-4bee-94b4-79bf26d62558 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-6d9a220a-4f95-4d5d-a232-c31f7f03b9f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.090492s] ... 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-edec299c-0630-4035-b49f-efd65f1744a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.038267s] ... 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-fe06b206-9667-4f41-8961-ac9cd1ea5af8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_driver_vendor_passthru_put [0.030303s] ... 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-4b98ba41-529a-4769-b420-df7fd98e3051 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.030986s] ... 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-8c426e5b-8312-46b2-a73a-b3c9479de8e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"return_key": "return_value"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.046101s] ... 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-fcfe670b-c8db-4a12-b0d5-eeec282b25dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:51.868185+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.035393s] ... 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-83ead0ba-dbee-413d-86f4-889d6f1513c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": []} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.039784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e56e78d-8b86-4209-8d49-dcaa537b94bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-98531080-591d-4039-b763-af8b28eb31a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-33a620cb-719f-46fb-95a2-ab0a39c6308f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-7d0cc9c6-0886-41c0-8064-f70d0c105a78 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-0260aa30-358d-420e-801d-a3b0026148fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_patch_name_replace_ok [0.127588s] ... 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-45b84e5f-18cc-42e1-adf0-24159de325d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:51.827642+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_driver.TestListDrivers.test_drivers_collection_custom_fields [0.036049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e53cf4a-385a-4263-a166-68eac67a04b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.037681s] ... 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-d00b9bca-c51f-4b01-8626-3106b7e8893e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_inspect_validation_failed_missing_parameter_value [0.140882s] ... 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-680f01d7-1631-40ce-82c0-9f7a59842e98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.029056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4107784f-ebec-40f4-a91e-c9e0ca5af3de X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.040286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ec0d5db1-13f5-44e2-b81e-8efcaf8acc5b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "a3f10cfe-32df-489b-b6f8-297f6f4cb400", "extra": {}, "links": [{"href": "http://localhost/v1/ports/a3f10cfe-32df-489b-b6f8-297f6f4cb400", "rel": "self"}, {"href": "http://localhost/ports/a3f10cfe-32df-489b-b6f8-297f6f4cb400", "rel": "bookmark"}]}, {"uuid": "60d9f003-054c-47aa-978f-41af3f84b064", "extra": {}, "links": [{"href": "http://localhost/v1/ports/60d9f003-054c-47aa-978f-41af3f84b064", "rel": "self"}, {"href": "http://localhost/ports/60d9f003-054c-47aa-978f-41af3f84b064", "rel": "bookmark"}]}, {"uuid": "c9131a08-0fab-4b46-8537-813e81983a86", "extra": {}, "links": [{"href": "http://localhost/v1/ports/c9131a08-0fab-4b46-8537-813e81983a86", "rel": "self"}, {"href": "http://localhost/ports/c9131a08-0fab-4b46-8537-813e81983a86", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.026714s] ... 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-25be6e33-5783-403a-9bae-213ad77dfc35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update [0.104152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291 WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d5dd7b4-ebd3-4c70-a2f8-78162a10bc60 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f53ccda8-c6ec-4e76-bb59-4bc284975291", "created_at": "2025-05-30T17:31:51.968917+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/f53ccda8-c6ec-4e76-bb59-4bc284975291", "rel": "self"}, {"href": "http://localhost/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/ports", "rel": "self"}, {"href": "http://localhost/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/states", "rel": "self"}, {"href": "http://localhost/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/volume", "rel": "self"}, {"href": "http://localhost/nodes/f53ccda8-c6ec-4e76-bb59-4bc284975291/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.039086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4241a0f-d777-4404-9074-ce29426de3d2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/813c7dd9-9a72-4718-8b2c-174b910cda9c", "rel": "self"}, {"href": "http://localhost/ports/813c7dd9-9a72-4718-8b2c-174b910cda9c", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/2da6eb28-1a6b-4c97-abb0-cfff43fa636e", "rel": "self"}, {"href": "http://localhost/ports/2da6eb28-1a6b-4c97-abb0-cfff43fa636e", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=2da6eb28-1a6b-4c97-abb0-cfff43fa636e"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.027730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-37458667-15a0-4f73-ad75-6b0654077b31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_drivers_detail_bad_version [0.030434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f5ec9dd8-3e43-43ad-b12c-565297c31f2f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.042490s] ... 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-4f619641-d85f-4a7a-854c-f0b34e802866 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.023268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7bde39eb-92e5-4384-91b3-41c610587297 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.130105s] ... 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-cb887172-a561-454a-84b0-8afd4c114169 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.043604s] ... 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-8ffa9808-d886-490b-b51b-e27c2ed1d5e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.033158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d0270c2-a948-4b00-bfcf-e18f6ea335aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.042625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5957abc2-58ef-4f7f-b4c2-8358a7a84627 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_power_interface": null, "enabled_power_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_raid_interface": null, "enabled_raid_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_network_interface": null, "enabled_network_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-059f94d5-dcf2-4147-bc37-058c002171b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-47ca4af0-f7a5-4389-8d4d-292b1b8d5e1d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.059579s] ... 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-50322c49-5e30-48b5-a690-c0b2df856e94 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-195ff155-e023-4880-aa35-d9fbc1de86b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.087910s] ... 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-454572de-fe7f-410d-bc74-9748ca21f832 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.183713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/65b3f869-c048-4f94-8631-213616c6c2c6 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7f6ecee-6858-4a05-b82c-b15ec46396f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "65b3f869-c048-4f94-8631-213616c6c2c6", "created_at": "2025-05-30T17:31:52.069578+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/65b3f869-c048-4f94-8631-213616c6c2c6", "rel": "self"}, {"href": "http://localhost/nodes/65b3f869-c048-4f94-8631-213616c6c2c6", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/ports", "rel": "self"}, {"href": "http://localhost/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/states", "rel": "self"}, {"href": "http://localhost/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/volume", "rel": "self"}, {"href": "http://localhost/nodes/65b3f869-c048-4f94-8631-213616c6c2c6/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.040351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16a44e58-6860-4377-9879-84fae6d32b0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_power_interface": null, "enabled_power_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": []} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2dd5113b-d3a2-4304-8b78-125f9067c7b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-5365140a-bbe1-4cae-9b16-234fbc8899c6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_drivers_no_active_conductor [0.024692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c36eb8e-d165-492d-b41e-4f861149011d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"drivers": []} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.022541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed667187-12e7-4773-a7f6-7007b12c3210 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_get_custom_fields_physical_network [0.103074s] ... 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-7a578dda-fe43-4ff2-801b-69ca36e3e159 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-46d9b50d-5955-41ff-b241-1a073f5d5c3a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.022565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bfd30d86-ee05-4b28-9282-33c980d2daa8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.097817s] ... 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-96ce72b2-1e3f-45cc-9629-f916450b4316 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic [0.027140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1cfcf7b6-c7c4-4e82-8339-2269343ca6e6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": []} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.055884s] ... 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-01e20d48-14b9-4db8-961b-0d3fbe3c25c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.028293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31ef43a4-eac4-409f-b48d-b3d72fdfe2b6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.042682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5db8951d-4f7e-4c06-ada8-7b093bf64e67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-06202936-7c72-40fb-b66d-8739523b9bdc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-6ad6305a-8dd0-43a5-8828-48509b1ec7fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-8b77e972-2cfc-44ee-8f33-97f468722121 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-1b83523c-575b-427f-9e73-530dbb233f14 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.066886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b2fd06e-245b-4b5b-822b-c4c31c468ec9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.399695+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_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.202547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5 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-60a21ceb-746b-4edb-ac41-3609ca4c4c1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "a66b150e-d3d5-4c65-8e96-90609298f8b5", "created_at": "2025-05-30T17:31:52.331046+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/a66b150e-d3d5-4c65-8e96-90609298f8b5", "rel": "self"}, {"href": "http://localhost/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/ports", "rel": "self"}, {"href": "http://localhost/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/states", "rel": "self"}, {"href": "http://localhost/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/volume", "rel": "self"}, {"href": "http://localhost/nodes/a66b150e-d3d5-4c65-8e96-90609298f8b5/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.140672s] ... 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-bc5fbbaf-0bb8-4622-99af-ba5993c8b1f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-69b623dc-2c70-4743-8442-aeada4eda4c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.040501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a859316e-f2c7-4a7c-99f9-ab8647f8c2d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_power_interface": null, "enabled_power_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_raid_interface": null, "enabled_raid_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_network_interface": null, "enabled_network_interfaces": [], "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_power_interface": null, "enabled_power_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_raid_interface": null, "enabled_raid_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_network_interface": null, "enabled_network_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-ef1cd90f-9a48-4436-8a9c-84e6ed3b2925 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-7fc5ad94-516d-4aa1-b811-ad0a5dc9943f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-e3d93af9-ed95-4f7a-ac90-56d9e8728328 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-e8f330e9-7fb1-407c-ae88-2df89418bc 82 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.034240s] ... 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-5b46bd62-4e38-488b-b8db-1682b9db9e57 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.036690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13724fa9-37d7-4355-89d4-8a694885ee3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.468686+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} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.047718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a474f1ed-dc4e-4649-9238-64747adf3c26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_power_interface": null, "enabled_power_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_rescue_interface": null, "enabled_rescue_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_power_interface": null, "enabled_power_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c6a74f7-5da7-4e44-a3ee-27663f067786 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-c32ecac9-4dd6-4363-b579-3ed495676bbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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- 958e7c85-9c7f-488e-8946-79e32ec2415f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-a0d88d0a-69de-4704-a2e2-4596127b9a6c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_patch_policy_update_generic_and_extra [0.104903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/31770566-661c-4205-8fc3-a44ee71abb12 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-897fadb4-7c66-4827-a3da-fbf663b992f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "31770566-661c-4205-8fc3-a44ee71abb12", "created_at": "2025-05-30T17:31:52.458513+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/31770566-661c-4205-8fc3-a44ee71abb12", "rel": "self"}, {"href": "http://localhost/nodes/31770566-661c-4205-8fc3-a44ee71abb12", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/31770566-661c-4205-8fc3-a44ee71abb12/ports", "rel": "self"}, {"href": "http://localhost/nodes/31770566-661c-4205-8fc3-a44ee71abb12/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/31770566-661c-4205-8fc3-a44ee71abb12/states", "rel": "self"}, {"href": "http://localhost/nodes/31770566-661c-4205-8fc3-a44ee71abb12/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/31770566-661c-4205-8fc3-a44ee71abb12/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/31770566-661c-4205-8fc3-a44ee71abb12/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/31770566-661c-4205-8fc3-a44ee71abb12/volume", "rel": "self"}, {"href": "http://localhost/nodes/31770566-661c-4205-8fc3-a44ee71abb12/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version [0.035722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c6d396e8-e215-4091-a336-aaeb01460e0c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-833321b0-f64a-42e8-bb3d-460a6fabfcb8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.102519s] ... 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-d387ed53-8f2a-44a4-be47-271276cd9cdf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_ports_by_description [0.059226s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d5a0ea0-2d75-47cb-aefa-b61e056d5cf1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1e86c3ef-7a3e-4340-b7be-ec74a1f1b0ea", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1e86c3ef-7a3e-4340-b7be-ec74a1f1b0ea", "rel": "self"}, {"href": "http://localhost/ports/1e86c3ef-7a3e-4340-b7be-ec74a1f1b0ea", "rel": "bookmark"}]}]} GET /v1/ports?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3046d2e-d351-4989-950e-2ada7ba0c17c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "657573b3-7336-4789-84f9-bb0930547e38", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/657573b3-7336-4789-84f9-bb0930547e38", "rel": "self"}, {"href": "http://localhost/ports/657573b3-7336-4789-84f9-bb0930547e38", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields [0.034560s] ... 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-1e264272-ac51-40d0-b236-5166d8d4a312 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.068758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-558fcf0a-7665-48ce-81b2-9ba268e84bde X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.591912+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-f6cbfa63-1bfd-4002-bd08-99060a68bb19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.591912+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.081348s] ... 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-2463f455-5c52-4c69-9d21-5082b6ce5eb7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.057706s] ... 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-6bc76879-b106-4464-9af2-9133d50e8b2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.042154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0686aad4-00f7-474a-b100-5e28926f4808 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.636099+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-19d2a086-bea6-43af-bccd-5c9fea83e730 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.636099+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.controllers.v1.test_driver.TestListDrivers.test_links [0.039676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5a9f30b-6b69-4fc8-ab06-4b9a6cb2b6f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-e3e5c5e6-d41f-4403-9a04-e53982a77a14 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-bac3b309-7de5-48f2-9add-6a6301da3961 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.138443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de 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-67dc6741-ab97-4471-be02-7586adada177 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "a55998bc-ba73-4a8a-86b7-84bae8f810de", "created_at": "2025-05-30T17:31:52.573179+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/a55998bc-ba73-4a8a-86b7-84bae8f810de", "rel": "self"}, {"href": "http://localhost/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/ports", "rel": "self"}, {"href": "http://localhost/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/states", "rel": "self"}, {"href": "http://localhost/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/volume", "rel": "self"}, {"href": "http://localhost/nodes/a55998bc-ba73-4a8a-86b7-84bae8f810de/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.074657s] ... 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-0aadf291-8773-47ea-8cf0-56f5243c0df9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.045770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7af3f749-b4e8-4d18-b975-7162f16a73c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.678517+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-3959f88f-d223-43bc-aa12-5ed2b7974ceb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.678517+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} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.043684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b2ffd85-7f8c-47b1-925c-19c93f262c79 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-45f4eeb4-9a20-4cab-ac6c-81c93d20bf0f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-01dfae67-b097-40be-add3-e6c043837843 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_driver.TestListDrivers.test_raid_logical_disk_properties [0.034425s] ... 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-73b404a1-12ad-4526-8ac9-cd55296344ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.053707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dcbea4fd-2904-4ce7-b747-e167f600cbc9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.726775+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-320aec45-f9fa-46e2-8175-7bc9b68b126f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.726775+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-81002244-20c2-4cef-98dc-f3552d752306 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.726775+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_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.107768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ef817689-428c-4469-8186-ff1869271650 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-7e5dea7a-2125-46af-8661-7a9ac154328b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ef817689-428c-4469-8186-ff1869271650", "created_at": "2025-05-30T17:31:52.703791+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/ef817689-428c-4469-8186-ff1869271650", "rel": "self"}, {"href": "http://localhost/nodes/ef817689-428c-4469-8186-ff1869271650", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ef817689-428c-4469-8186-ff1869271650/ports", "rel": "self"}, {"href": "http://localhost/nodes/ef817689-428c-4469-8186-ff1869271650/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ef817689-428c-4469-8186-ff1869271650/states", "rel": "self"}, {"href": "http://localhost/nodes/ef817689-428c-4469-8186-ff1869271650/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ef817689-428c-4469-8186-ff1869271650/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ef817689-428c-4469-8186-ff1869271650/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ef817689-428c-4469-8186-ff1869271650/volume", "rel": "self"}, {"href": "http://localhost/nodes/ef817689-428c-4469-8186-ff1869271650/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.038552s] ... 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-6ffa818a-b535-4aa6-b369-f924c494aaeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-e901d68e-a366-4572-b4e9-93047098a018 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-81b7ee97-f656-45f4-a327-bfadb267c6ae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_off_with_disable_power_off [0.102146s] ... 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-3e691d10-e31b-4d9b-a13e-9b85e96b4cf6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.048258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea8c4df3-f92b-411a-802f-0333bd8fd154 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.782160+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-00358f3a-1ab0-4a35-b2ff-03b4d91da521 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.782160+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} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.050535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98ab7174-f8a8-4b78-a45f-9a5f92ba8a70 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.828131+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.TestPatch.test_patch_policy_update_instance_info [0.111079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/11e137ee-c675-4161-84d8-830ef7deb319 WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8990b41-6d74-4089-aab1-1174bb1dc17b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "11e137ee-c675-4161-84d8-830ef7deb319", "created_at": "2025-05-30T17:31:52.822685+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/11e137ee-c675-4161-84d8-830ef7deb319", "rel": "self"}, {"href": "http://localhost/nodes/11e137ee-c675-4161-84d8-830ef7deb319", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/11e137ee-c675-4161-84d8-830ef7deb319/ports", "rel": "self"}, {"href": "http://localhost/nodes/11e137ee-c675-4161-84d8-830ef7deb319/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/11e137ee-c675-4161-84d8-830ef7deb319/states", "rel": "self"}, {"href": "http://localhost/nodes/11e137ee-c675-4161-84d8-830ef7deb319/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/11e137ee-c675-4161-84d8-830ef7deb319/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/11e137ee-c675-4161-84d8-830ef7deb319/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/11e137ee-c675-4161-84d8-830ef7deb319/volume", "rel": "self"}, {"href": "http://localhost/nodes/11e137ee-c675-4161-84d8-830ef7deb319/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.093241s] ... 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-2e69f1cb-ee8c-451d-9f5d-772f7c92e1ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.077392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a025208-1d9f-424d-8edb-e0c90915713d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.901671+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-d1bace18-e457-434e-874d-67fd3a532d1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:52.901671+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_node.TestPatch.test_patch_policy_update_none [0.091663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27 WITH [] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1ebb383-d804-4269-839d-f5219c553c1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "2f03e863-67b6-4e52-bfd8-95b75a558d27", "created_at": "2025-05-30T17:31:52.918833+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/2f03e863-67b6-4e52-bfd8-95b75a558d27", "rel": "self"}, {"href": "http://localhost/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/states", "rel": "self"}, {"href": "http://localhost/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f03e863-67b6-4e52-bfd8-95b75a558d27/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.201828s] ... 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-902e2798-d3d5-4ed5-b8b9-0bc24dd39ec3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_links [0.080125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/cdd4803a-795f-461f-b230-994fd4dca165 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35324c56-3c33-4502-ab51-8bc65d600d4a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "cdd4803a-795f-461f-b230-994fd4dca165", "created_at": "2025-05-30T17:31:52.985282+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/cdd4803a-795f-461f-b230-994fd4dca165", "rel": "self"}, {"href": "http://localhost/ports/cdd4803a-795f-461f-b230-994fd4dca165", "rel": "bookmark"}]} GET /v1/ports/cdd4803a-795f-461f-b230-994fd4dca165 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d39d382b-f9a5-4d84-bd71-98acfad580d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "cdd4803a-795f-461f-b230-994fd4dca165", "created_at": "2025-05-30T17:31:52.985282+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/cdd4803a-795f-461f-b230-994fd4dca165", "rel": "self"}, {"href": "http://localhost/ports/cdd4803a-795f-461f-b230-994fd4dca165", "rel": "bookmark"}]} GET /ports/cdd4803a-795f-461f-b230-994fd4dca165 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e975531f-2122-4ff8-bf52-dd12f935f1f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "cdd4803a-795f-461f-b230-994fd4dca165", "created_at": "2025-05-30T17:31:52.985282+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/cdd4803a-795f-461f-b230-994fd4dca165", "rel": "self"}, {"href": "http://localhost/ports/cdd4803a-795f-461f-b230-994fd4dca165", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.031430s] ... 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-7d9231f0-2946-43c7-9fc4-2a519c706b4a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_patch_portgroups_subresource [0.066354s] ... 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-7193f343-636d-40b4-8a34-05e38d157d43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_inspection_rule.TestPost.test_create_rule [0.041619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '45c84ed6-c7c2-4106-9278-60b732adf29a', '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/45c84ed6-c7c2-4106-9278-60b732adf29a Openstack-Request-Id: req-fee8ede9-ffbb-4445-be32-41a6afc614b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "45c84ed6-c7c2-4106-9278-60b732adf29a", "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/45c84ed6-c7c2-4106-9278-60b732adf29a", "rel": "self"}, {"href": "http://localhost/inspection/45c84ed6-c7c2-4106-9278-60b732adf29a", "rel": "bookmark"}]} GET /v1/inspection_rules/45c84ed6-c7c2-4106-9278-60b732adf29a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85d8935c-4b97-4b09-a3e0-7e8b1db69899 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "45c84ed6-c7c2-4106-9278-60b732adf29a", "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/45c84ed6-c7c2-4106-9278-60b732adf29a", "rel": "self"}, {"href": "http://localhost/inspection/45c84ed6-c7c2-4106-9278-60b732adf29a", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.055488s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/fc5fdf20-d352-49af-932a-e6ddd5643556 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc1f0ce8-5aee-46c9-87ac-0aa3a38ed108 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fc5fdf20-d352-49af-932a-e6ddd5643556", "created_at": "2025-05-30T17:31:53.041093+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/fc5fdf20-d352-49af-932a-e6ddd5643556", "rel": "self"}, {"href": "http://foo/ports/fc5fdf20-d352-49af-932a-e6ddd5643556", "rel": "bookmark"}]} GET /v1/ports/fc5fdf20-d352-49af-932a-e6ddd5643556 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e639ae0-67c4-4381-b34d-40ec1b5d738e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fc5fdf20-d352-49af-932a-e6ddd5643556", "created_at": "2025-05-30T17:31:53.041093+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/fc5fdf20-d352-49af-932a-e6ddd5643556", "rel": "self"}, {"href": "http://foo/ports/fc5fdf20-d352-49af-932a-e6ddd5643556", "rel": "bookmark"}]} GET /ports/fc5fdf20-d352-49af-932a-e6ddd5643556 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54a107a3-6e9e-4496-97e3-38c795736285 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fc5fdf20-d352-49af-932a-e6ddd5643556", "created_at": "2025-05-30T17:31:53.041093+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/fc5fdf20-d352-49af-932a-e6ddd5643556", "rel": "self"}, {"href": "http://foo/ports/fc5fdf20-d352-49af-932a-e6ddd5643556", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.057486s] ... 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-3d9c8863-000d-4e4e-b689-bb8fc535c3bb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_inspection_rule.TestPost.test_create_rule_generate_uuid [0.046370s] ... 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/f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c Openstack-Request-Id: req-a22400c0-5525-4503-8e5a-74f5ce6fc087 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c", "created_at": "2025-05-30T17:31:53.090186+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/f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c", "rel": "self"}, {"href": "http://localhost/inspection/f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c", "rel": "bookmark"}]} GET /v1/inspection_rules/f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83690c31-a946-4d7e-8e5f-4b4a526f418c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c", "created_at": "2025-05-30T17:31:53.090186+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/f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c", "rel": "self"}, {"href": "http://localhost/inspection/f01fceb5-eaac-47e7-b1b7-3bf071fb1c5c", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden [0.040045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3f2e921b-0bbf-40f9-a89c-719fd5ac85bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project [0.039813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-569a4ac9-d911-4d5b-b1c4-ad974da27e57 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.controllers.v1.test_inspection_rule.TestPost.test_create_rule_with_optional_args [0.043623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '4e319b88-4d22-4d82-8667-2a07e35ab199', '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/4e319b88-4d22-4d82-8667-2a07e35ab199 Openstack-Request-Id: req-d174a372-f371-49f4-9e1e-816ef88db8bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4e319b88-4d22-4d82-8667-2a07e35ab199", "created_at": "2025-05-30T17:31:53.145836+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/4e319b88-4d22-4d82-8667-2a07e35ab199", "rel": "self"}, {"href": "http://localhost/inspection/4e319b88-4d22-4d82-8667-2a07e35ab199", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.061276s] ... 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-5dc67d80-84aa-4841-aad0-c608a5f9ead7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_associated_nodes_error [0.037949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a814a65-3afc-469b-8ac2-2b94969dbf5f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.047551s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34634ea6-cef2-4fa5-9d11-103698dcdc59 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "73fe9970-ad63-4332-81da-1a43ee72bcc0", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/73fe9970-ad63-4332-81da-1a43ee72bcc0", "rel": "self"}, {"href": "http://localhost/ports/73fe9970-ad63-4332-81da-1a43ee72bcc0", "rel": "bookmark"}]}, {"uuid": "1ff11b53-d458-46db-976f-86d16e43341a", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1ff11b53-d458-46db-976f-86d16e43341a", "rel": "self"}, {"href": "http://localhost/ports/1ff11b53-d458-46db-976f-86d16e43341a", "rel": "bookmark"}]}, {"uuid": "667576d0-00da-4c1e-ae25-81328bac3a22", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/667576d0-00da-4c1e-ae25-81328bac3a22", "rel": "self"}, {"href": "http://localhost/ports/667576d0-00da-4c1e-ae25-81328bac3a22", "rel": "bookmark"}]}, {"uuid": "22ef411c-c5c3-4e07-b543-d96133ff19a5", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/22ef411c-c5c3-4e07-b543-d96133ff19a5", "rel": "self"}, {"href": "http://localhost/ports/22ef411c-c5c3-4e07-b543-d96133ff19a5", "rel": "bookmark"}]}, {"uuid": "00e2c219-ceba-4d01-96bd-6bfbb75e9f59", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/00e2c219-ceba-4d01-96bd-6bfbb75e9f59", "rel": "self"}, {"href": "http://localhost/ports/00e2c219-ceba-4d01-96bd-6bfbb75e9f59", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.047974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-901acb29-3de6-4359-838d-36ede5c11a5e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "dbdcaf54-9d80-4384-a0b5-f30f17629816", "instance_uuid": "90762e94-a2c5-4d92-91f6-5a2bd90dc5c5", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dbdcaf54-9d80-4384-a0b5-f30f17629816", "rel": "self"}, {"href": "http://localhost/nodes/dbdcaf54-9d80-4384-a0b5-f30f17629816", "rel": "bookmark"}]}, {"uuid": "7f935098-a846-4be4-bec4-fd5c4c9406bc", "instance_uuid": "3b219235-028d-4944-b795-e117175dd9c9", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7f935098-a846-4be4-bec4-fd5c4c9406bc", "rel": "self"}, {"href": "http://localhost/nodes/7f935098-a846-4be4-bec4-fd5c4c9406bc", "rel": "bookmark"}]}, {"uuid": "ac873003-f6b5-4cd3-affd-06f7035c62fc", "instance_uuid": "4ea4aa15-a9f2-44a6-b498-002c8daeb534", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ac873003-f6b5-4cd3-affd-06f7035c62fc", "rel": "self"}, {"href": "http://localhost/nodes/ac873003-f6b5-4cd3-affd-06f7035c62fc", "rel": "bookmark"}]}, {"uuid": "05589f2a-b97b-471a-b16f-e32e0892cf96", "instance_uuid": "2c797e6b-b18b-4979-b022-25dbfeed3e43", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/05589f2a-b97b-471a-b16f-e32e0892cf96", "rel": "self"}, {"href": "http://localhost/nodes/05589f2a-b97b-471a-b16f-e32e0892cf96", "rel": "bookmark"}]}]} GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9a09885-4bbe-4782-aad1-6fd7b93a3ee9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "dbdcaf54-9d80-4384-a0b5-f30f17629816", "instance_uuid": "90762e94-a2c5-4d92-91f6-5a2bd90dc5c5", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dbdcaf54-9d80-4384-a0b5-f30f17629816", "rel": "self"}, {"href": "http://localhost/nodes/dbdcaf54-9d80-4384-a0b5-f30f17629816", "rel": "bookmark"}]}, {"uuid": "7f935098-a846-4be4-bec4-fd5c4c9406bc", "instance_uuid": "3b219235-028d-4944-b795-e117175dd9c9", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7f935098-a846-4be4-bec4-fd5c4c9406bc", "rel": "self"}, {"href": "http://localhost/nodes/7f935098-a846-4be4-bec4-fd5c4c9406bc", "rel": "bookmark"}]}, {"uuid": "ac873003-f6b5-4cd3-affd-06f7035c62fc", "instance_uuid": "4ea4aa15-a9f2-44a6-b498-002c8daeb534", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ac873003-f6b5-4cd3-affd-06f7035c62fc", "rel": "self"}, {"href": "http://localhost/nodes/ac873003-f6b5-4cd3-affd-06f7035c62fc", "rel": "bookmark"}]}, {"uuid": "05589f2a-b97b-471a-b16f-e32e0892cf96", "instance_uuid": "2c797e6b-b18b-4979-b022-25dbfeed3e43", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/05589f2a-b97b-471a-b16f-e32e0892cf96", "rel": "self"}, {"href": "http://localhost/nodes/05589f2a-b97b-471a-b16f-e32e0892cf96", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.098524s] ... 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-ef36c14a-94a1-41c6-8986-ec2a94f20ec4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin [0.068440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ee936e5-a219-4d29-8489-360092858ac4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "318c9b61-7b86-4829-b1af-a406ed371812", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/318c9b61-7b86-4829-b1af-a406ed371812", "rel": "self"}, {"href": "http://localhost/ports/318c9b61-7b86-4829-b1af-a406ed371812", "rel": "bookmark"}]}, {"uuid": "e3d3e3c0-f08f-4bdc-8c9b-e8954794316e", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e3d3e3c0-f08f-4bdc-8c9b-e8954794316e", "rel": "self"}, {"href": "http://localhost/ports/e3d3e3c0-f08f-4bdc-8c9b-e8954794316e", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.040139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ec72f86d-babb-45f7-afb9-2b7771f7958a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "e7a83a92-e666-40e7-b344-969f1179506c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e7a83a92-e666-40e7-b344-969f1179506c", "rel": "self"}, {"href": "http://localhost/nodes/e7a83a92-e666-40e7-b344-969f1179506c", "rel": "bookmark"}]}, {"uuid": "32b921eb-e169-4255-adeb-ee549073243d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/32b921eb-e169-4255-adeb-ee549073243d", "rel": "self"}, {"href": "http://localhost/nodes/32b921eb-e169-4255-adeb-ee549073243d", "rel": "bookmark"}]}, {"uuid": "c05c0fb0-3194-4456-a9c0-a88aebc17231", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c05c0fb0-3194-4456-a9c0-a88aebc17231", "rel": "self"}, {"href": "http://localhost/nodes/c05c0fb0-3194-4456-a9c0-a88aebc17231", "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=c05c0fb0-3194-4456-a9c0-a88aebc17231"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.046197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04b802bf-13c4-42f2-a342-6991219d56de X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.040391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7923b85e-ec2d-43dd-872f-73364d73af14 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "fddb9d8c-d419-41e5-9df6-4fca14f50406", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/fddb9d8c-d419-41e5-9df6-4fca14f50406", "rel": "self"}, {"href": "http://localhost/nodes/fddb9d8c-d419-41e5-9df6-4fca14f50406", "rel": "bookmark"}]}, {"uuid": "1a0f64e6-d26f-4428-87b5-fc4375782505", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/1a0f64e6-d26f-4428-87b5-fc4375782505", "rel": "self"}, {"href": "http://localhost/nodes/1a0f64e6-d26f-4428-87b5-fc4375782505", "rel": "bookmark"}]}, {"uuid": "925883f0-b10a-4b70-8860-6149d7ef7746", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/925883f0-b10a-4b70-8860-6149d7ef7746", "rel": "self"}, {"href": "http://localhost/nodes/925883f0-b10a-4b70-8860-6149d7ef7746", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=925883f0-b10a-4b70-8860-6149d7ef7746"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.069430s] ... 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-5e8abfea-0c28-40c9-8895-c5dbe2a9a19a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.460495s] ... 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-8ce375df-fe51-495b-94f2-7f7899723b02 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.042144s] ... 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-16d17e83-c1cd-4e9c-be9a-2c2bc14221b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "fabf6495-5ff1-449e-8613-cdf25cab7574", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/fabf6495-5ff1-449e-8613-cdf25cab7574", "rel": "self"}, {"href": "http://localhost/ports/fabf6495-5ff1-449e-8613-cdf25cab7574", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.038779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80ca8e0c-0775-4c98-ad25-6d8b6bbacdee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "29528b98-4fd3-49c8-99d2-e2d1a1ab0d07", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/29528b98-4fd3-49c8-99d2-e2d1a1ab0d07", "rel": "self"}, {"href": "http://localhost/nodes/29528b98-4fd3-49c8-99d2-e2d1a1ab0d07", "rel": "bookmark"}]}, {"uuid": "bd746eff-c2fe-4bb7-bf0e-6b07fffad5e3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/bd746eff-c2fe-4bb7-bf0e-6b07fffad5e3", "rel": "self"}, {"href": "http://localhost/nodes/bd746eff-c2fe-4bb7-bf0e-6b07fffad5e3", "rel": "bookmark"}]}, {"uuid": "dc09d91b-9798-452c-9344-3539dc9a2f31", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dc09d91b-9798-452c-9344-3539dc9a2f31", "rel": "self"}, {"href": "http://localhost/nodes/dc09d91b-9798-452c-9344-3539dc9a2f31", "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=dc09d91b-9798-452c-9344-3539dc9a2f31"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.061991s] ... 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-53ec3347-3ad4-4bc1-9363-932ab1dd2c4b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListNodes.test_collection_links_instance_uuid_param [0.034911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=da044326-bf20-455e-b214-7a1b1c83a1eb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16ac93fc-614b-47b5-83f4-2fa260bee648 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "3c3a7b1c-ccfe-473d-a252-a55d0b48f2f7", "instance_uuid": "da044326-bf20-455e-b214-7a1b1c83a1eb", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3c3a7b1c-ccfe-473d-a252-a55d0b48f2f7", "rel": "self"}, {"href": "http://localhost/nodes/3c3a7b1c-ccfe-473d-a252-a55d0b48f2f7", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.050725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3c51ad43-1a5d-44c3-ba9a-64d02271f5ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.controllers.v1.test_node.TestListNodes.test_detail [0.035334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d575522-b31c-4890-8f99-1a443c6d4d95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:53.421623+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.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.082804s] ... 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-7e05ac51-46c4-4602-b844-d43ba2072a68 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_port_by_address_non_admin [0.053162s] ... 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-b8fdc38d-bfb6-40cd-ae49-536fba006139 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "2642bfb3-5505-40d6-991e-d6a7f28f8492", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/2642bfb3-5505-40d6-991e-d6a7f28f8492", "rel": "self"}, {"href": "http://localhost/ports/2642bfb3-5505-40d6-991e-d6a7f28f8492", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.027678s] ... 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-991bd9c6-ac38-4aa0-95ee-d598ed7e8305 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.089935s] ... 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-6c82c57c-0758-48a0-addf-701259a4bf39 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.024657s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9dc422cb-9456-4820-a518-d5af3ae6a056 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_port_by_address_non_admin_no_match [0.047139s] ... 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-f8a315a3-13b1-4d60-9fab-97ae31851964 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.080666s] ... 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-3211913e-99df-41fa-a47c-9bfa81e04fd3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid [0.043414s] ... 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-f1d81561-bea5-49b0-bb9f-c15d57c89394 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:53.510480+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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.052319s] ... 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-1eec3316-1f15-4fc5-9823-ced595e9f4a5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.036134s] ... 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-72435740-ff72-4e8e-981a-d8e953848d86 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:53.558422+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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.060991s] ... 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-52f7c4e6-7909-4753-a090-d7a208a3f731 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.029041s] ... 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource [0.071177s] ... 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-ff6ba6bb-b330-4ff2-af7c-b55e78fc591a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match [0.032839s] ... 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-a88b16a9-ae2e-4baa-bf16-9acfc1567b31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.095502s] ... 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-01a501a5-53e7-48a9-baef-9b2a532aef8d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.028725s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.027656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fea20a39-da64-438a-952b-150a0aeda7c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPatch.test_remove_chassis_id [0.046615s] ... 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-c4c7faa1-a4ce-41de-87cd-fc9ce3e25663 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden [0.049388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53a50ad7-ff7d-4d89-9a2f-2c40a30b2dbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "3f25af14-1d1b-4742-ad87-84436d17ddd8", "created_at": "2025-05-30T17:31:53.660042+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/3f25af14-1d1b-4742-ad87-84436d17ddd8", "rel": "self"}, {"href": "http://localhost/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/ports", "rel": "self"}, {"href": "http://localhost/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/states", "rel": "self"}, {"href": "http://localhost/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/volume", "rel": "self"}, {"href": "http://localhost/nodes/3f25af14-1d1b-4742-ad87-84436d17ddd8/volume", "rel": "bookmark"}]}, {"uuid": "cecc4473-8ece-47ee-b450-0692d84a4414", "created_at": "2025-05-30T17:31:53.661477+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/cecc4473-8ece-47ee-b450-0692d84a4414", "rel": "self"}, {"href": "http://localhost/nodes/cecc4473-8ece-47ee-b450-0692d84a4414", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/ports", "rel": "self"}, {"href": "http://localhost/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/states", "rel": "self"}, {"href": "http://localhost/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/volume", "rel": "self"}, {"href": "http://localhost/nodes/cecc4473-8ece-47ee-b450-0692d84a4414/volume", "rel": "bookmark"}]}, {"uuid": "3d66af0b-621f-44b6-86aa-689c2391229e", "created_at": "2025-05-30T17:31:53.662839+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/3d66af0b-621f-44b6-86aa-689c2391229e", "rel": "self"}, {"href": "http://localhost/nodes/3d66af0b-621f-44b6-86aa-689c2391229e", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/ports", "rel": "self"}, {"href": "http://localhost/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/states", "rel": "self"}, {"href": "http://localhost/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/volume", "rel": "self"}, {"href": "http://localhost/nodes/3d66af0b-621f-44b6-86aa-689c2391229e/volume", "rel": "bookmark"}]}, {"uuid": "c17460df-3421-413f-948c-765fbb95ad28", "created_at": "2025-05-30T17:31:53.664231+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/c17460df-3421-413f-948c-765fbb95ad28", "rel": "self"}, {"href": "http://localhost/nodes/c17460df-3421-413f-948c-765fbb95ad28", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c17460df-3421-413f-948c-765fbb95ad28/ports", "rel": "self"}, {"href": "http://localhost/nodes/c17460df-3421-413f-948c-765fbb95ad28/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c17460df-3421-413f-948c-765fbb95ad28/states", "rel": "self"}, {"href": "http://localhost/nodes/c17460df-3421-413f-948c-765fbb95ad28/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c17460df-3421-413f-948c-765fbb95ad28/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c17460df-3421-413f-948c-765fbb95ad28/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c17460df-3421-413f-948c-765fbb95ad28/volume", "rel": "self"}, {"href": "http://localhost/nodes/c17460df-3421-413f-948c-765fbb95ad28/volume", "rel": "bookmark"}]}, {"uuid": "4267ab48-a680-4132-8273-b0ae92139e5f", "created_at": "2025-05-30T17:31:53.665636+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/4267ab48-a680-4132-8273-b0ae92139e5f", "rel": "self"}, {"href": "http://localhost/nodes/4267ab48-a680-4132-8273-b0ae92139e5f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/ports", "rel": "self"}, {"href": "http://localhost/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/states", "rel": "self"}, {"href": "http://localhost/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/volume", "rel": "self"}, {"href": "http://localhost/nodes/4267ab48-a680-4132-8273-b0ae92139e5f/volume", "rel": "bookmark"}]}, {"uuid": "73daec52-9284-40c8-91a4-06c20df9165b", "created_at": "2025-05-30T17:31:53.667076+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/73daec52-9284-40c8-91a4-06c20df9165b", "rel": "self"}, {"href": "http://localhost/nodes/73daec52-9284-40c8-91a4-06c20df9165b", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/73daec52-9284-40c8-91a4-06c20df9165b/ports", "rel": "self"}, {"href": "http://localhost/nodes/73daec52-9284-40c8-91a4-06c20df9165b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/73daec52-9284-40c8-91a4-06c20df9165b/states", "rel": "self"}, {"href": "http://localhost/nodes/73daec52-9284-40c8-91a4-06c20df9165b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/73daec52-9284-40c8-91a4-06c20df9165b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/73daec52-9284-40c8-91a4-06c20df9165b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/73daec52-9284-40c8-91a4-06c20df9165b/volume", "rel": "self"}, {"href": "http://localhost/nodes/73daec52-9284-40c8-91a4-06c20df9165b/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.063431s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-91ece604-d497-4f67-8aab-e30196577227 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "34dfadf0-be5b-41fd-b9a2-343858f2d123", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/34dfadf0-be5b-41fd-b9a2-343858f2d123", "rel": "self"}, {"href": "http://localhost/ports/34dfadf0-be5b-41fd-b9a2-343858f2d123", "rel": "bookmark"}]}, {"uuid": "58c3fcf4-638f-477a-8fa8-09d82868bce8", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/58c3fcf4-638f-477a-8fa8-09d82868bce8", "rel": "self"}, {"href": "http://localhost/ports/58c3fcf4-638f-477a-8fa8-09d82868bce8", "rel": "bookmark"}]}, {"uuid": "de810398-f752-4d99-94ff-6cb894ab4ae1", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/de810398-f752-4d99-94ff-6cb894ab4ae1", "rel": "self"}, {"href": "http://localhost/ports/de810398-f752-4d99-94ff-6cb894ab4ae1", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.105091s] ... 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-e0af2c76-1065-421a-8471-b2e112918d34 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.082004s] ... 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-88dc5a8c-4ded-410d-9865-308dbde6c76e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:53.677829+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_port.TestListPorts.test_sort_key_allowed [0.043664s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79679fdc-0f06-4c0b-b1d2-506523ae0754 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "d66d9d59-08c3-49a9-93c6-5152dc74cc68", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d66d9d59-08c3-49a9-93c6-5152dc74cc68", "rel": "self"}, {"href": "http://localhost/ports/d66d9d59-08c3-49a9-93c6-5152dc74cc68", "rel": "bookmark"}]}, {"uuid": "fa2bf22b-1a39-4d81-b3f8-0f59de6400eb", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/fa2bf22b-1a39-4d81-b3f8-0f59de6400eb", "rel": "self"}, {"href": "http://localhost/ports/fa2bf22b-1a39-4d81-b3f8-0f59de6400eb", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.050847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6f375567-7abb-439d-a439-34946821de53 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_detail_query_false [0.043363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-894236a4-8a42-4b6d-bbbb-e7855aac5617 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-69fc67ca-8c17-4ff6-aec2-1541b2ef24ae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid [0.046147s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-571bda8d-9e16-41bb-8f49-f5e3f3531818 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-527c053e-f626-4442-954d-f735d4cbfb0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-622fb16b-e34c-43b9-801e-0a6b7a1e7ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-91581b05-3085-440a-87d6-99226d995f5a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.067591s] ... 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-5a8ad9c4-28e5-4c9c-b1ef-61549c3fb589 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPorts.test_sort_key_not_allowed [0.027636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-392b4ab1-3759-48d0-8c9b-c23fd157aeeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_snmpv3 [0.036143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bed93457-e16f-4c7f-8e70-a629bdcfa42c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:53.806936+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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.098330s] ... 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-062b0404-1b4b-414c-8da9-b71748b14d1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.040374s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b09bed16-4379-4cea-951f-7019892e40a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "22c136c3-79fd-4169-87ab-479ae77a1d47", "created_at": "2025-05-30T17:31:53.848832+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/22c136c3-79fd-4169-87ab-479ae77a1d47", "rel": "self"}, {"href": "http://localhost/nodes/22c136c3-79fd-4169-87ab-479ae77a1d47", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22c136c3-79fd-4169-87ab-479ae77a1d47/ports", "rel": "self"}, {"href": "http://localhost/nodes/22c136c3-79fd-4169-87ab-479ae77a1d47/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22c136c3-79fd-4169-87ab-479ae77a1d47/states", "rel": "self"}, {"href": "http://localhost/nodes/22c136c3-79fd-4169-87ab-479ae77a1d47/states", "rel": "bookmark"}]}, {"uuid": "b598d4d7-e220-4982-82f6-ab60f0742d3c", "created_at": "2025-05-30T17:31:53.847162+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/b598d4d7-e220-4982-82f6-ab60f0742d3c", "rel": "self"}, {"href": "http://localhost/nodes/b598d4d7-e220-4982-82f6-ab60f0742d3c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b598d4d7-e220-4982-82f6-ab60f0742d3c/ports", "rel": "self"}, {"href": "http://localhost/nodes/b598d4d7-e220-4982-82f6-ab60f0742d3c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b598d4d7-e220-4982-82f6-ab60f0742d3c/states", "rel": "self"}, {"href": "http://localhost/nodes/b598d4d7-e220-4982-82f6-ab60f0742d3c/states", "rel": "bookmark"}]}, {"uuid": "b64cd681-c550-449b-afe4-1864ce24dd58", "created_at": "2025-05-30T17:31:53.845687+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/b64cd681-c550-449b-afe4-1864ce24dd58", "rel": "self"}, {"href": "http://localhost/nodes/b64cd681-c550-449b-afe4-1864ce24dd58", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b64cd681-c550-449b-afe4-1864ce24dd58/ports", "rel": "self"}, {"href": "http://localhost/nodes/b64cd681-c550-449b-afe4-1864ce24dd58/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b64cd681-c550-449b-afe4-1864ce24dd58/states", "rel": "self"}, {"href": "http://localhost/nodes/b64cd681-c550-449b-afe4-1864ce24dd58/states", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_all_by_conductor_groups [0.059822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?conductor_groups=group_a,group_b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ffda859e-126c-4e45-ad72-78d815fd8fe0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "7811e33a-ae8e-489c-9561-8450a4c0e383", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/7811e33a-ae8e-489c-9561-8450a4c0e383", "rel": "self"}, {"href": "http://localhost/ports/7811e33a-ae8e-489c-9561-8450a4c0e383", "rel": "bookmark"}]}, {"uuid": "05ba4c72-73a9-4867-91a1-42844dc9be86", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/05ba4c72-73a9-4867-91a1-42844dc9be86", "rel": "self"}, {"href": "http://localhost/ports/05ba4c72-73a9-4867-91a1-42844dc9be86", "rel": "bookmark"}]}, {"uuid": "1ee45e0e-d1ec-4750-8a97-0bfdb0997eac", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/1ee45e0e-d1ec-4750-8a97-0bfdb0997eac", "rel": "self"}, {"href": "http://localhost/ports/1ee45e0e-d1ec-4750-8a97-0bfdb0997eac", "rel": "bookmark"}]}, {"uuid": "93ee7e28-25e0-4219-a02f-a383dc81a17f", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/93ee7e28-25e0-4219-a02f-a383dc81a17f", "rel": "self"}, {"href": "http://localhost/ports/93ee7e28-25e0-4219-a02f-a383dc81a17f", "rel": "bookmark"}]}, {"uuid": "7b597cca-5d14-48e7-a0d1-28486e2b429e", "address": "52:54:00:cf:2d:35", "links": [{"href": "http://localhost/v1/ports/7b597cca-5d14-48e7-a0d1-28486e2b429e", "rel": "self"}, {"href": "http://localhost/ports/7b597cca-5d14-48e7-a0d1-28486e2b429e", "rel": "bookmark"}]}]} GET /v1/ports?conductor_groups=group_b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8fd0dffb-c49a-41f3-a345-8e9cb4731429 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1ee45e0e-d1ec-4750-8a97-0bfdb0997eac", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/1ee45e0e-d1ec-4750-8a97-0bfdb0997eac", "rel": "self"}, {"href": "http://localhost/ports/1ee45e0e-d1ec-4750-8a97-0bfdb0997eac", "rel": "bookmark"}]}, {"uuid": "93ee7e28-25e0-4219-a02f-a383dc81a17f", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/93ee7e28-25e0-4219-a02f-a383dc81a17f", "rel": "self"}, {"href": "http://localhost/ports/93ee7e28-25e0-4219-a02f-a383dc81a17f", "rel": "bookmark"}]}, {"uuid": "7b597cca-5d14-48e7-a0d1-28486e2b429e", "address": "52:54:00:cf:2d:35", "links": [{"href": "http://localhost/v1/ports/7b597cca-5d14-48e7-a0d1-28486e2b429e", "rel": "self"}, {"href": "http://localhost/ports/7b597cca-5d14-48e7-a0d1-28486e2b429e", "rel": "bookmark"}]}]} GET /v1/ports?conductor_groups=no_such_group WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-237070f5-f6db-4abe-a9c8-08634560a8f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.085193s] ... 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-591332a1-dcc7-483f-9328-06373be34824 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_remove_internal_field [0.046055s] ... 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-4e5684d9-7139-4c8d-9e3b-9d72363b0a75 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.025137s] ... 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-e7b35bde-1b50-412e-9d08-1f47a57727ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_detail_using_query [0.033147s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-44c74b8a-25f7-4a65-8ef7-18409c3f1d89 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:53.909283+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.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.069005s] ... 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-12cad5ec-b8bd-4d4a-a6fd-80ff6a807144 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.028761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9632a639-5d6c-4ece-8233-b51f06aa98c7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestPatch.test_remove_mandatory_field [0.091592s] ... 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-56c71b86-a203-4cf6-82a7-5ac89cc8edf3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.032602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3640e1ba-83e8-405e-8bbe-11b347c1ce4e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.025632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbaa174f-90c0-4522-a0b1-bea83c89e4f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.074515s] ... 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-5b6f7520-f6e7-477d-bd58-501408ae96f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_remove_non_existent_property_fail [0.045498s] ... 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-1e4bb225-a353-498c-89f2-1bba7c0ae597 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.058933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f33e3df-2a4e-48ba-bb71-b1ea728ec861 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "be0eed2f-d237-4bf3-86de-415fe7a7a5b8", "created_at": "2025-05-30T17:31:54.036037+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": "2e6e5af1-874a-4d97-a046-dd041c3a8f24", "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/be0eed2f-d237-4bf3-86de-415fe7a7a5b8", "rel": "self"}, {"href": "http://localhost/nodes/be0eed2f-d237-4bf3-86de-415fe7a7a5b8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/be0eed2f-d237-4bf3-86de-415fe7a7a5b8/ports", "rel": "self"}, {"href": "http://localhost/nodes/be0eed2f-d237-4bf3-86de-415fe7a7a5b8/ports", "rel": "bookmark"}]}, {"uuid": "40eb3eb0-cf26-4651-84fd-35daacc48f44", "created_at": "2025-05-30T17:31:54.037429+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": "8285cfdd-c48a-4adb-bcde-2796fd081008", "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/40eb3eb0-cf26-4651-84fd-35daacc48f44", "rel": "self"}, {"href": "http://localhost/nodes/40eb3eb0-cf26-4651-84fd-35daacc48f44", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/40eb3eb0-cf26-4651-84fd-35daacc48f44/ports", "rel": "self"}, {"href": "http://localhost/nodes/40eb3eb0-cf26-4651-84fd-35daacc48f44/ports", "rel": "bookmark"}]}, {"uuid": "9f8c82c1-63ac-4a4c-a160-d6b739dd8533", "created_at": "2025-05-30T17:31:54.038775+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": "b668182a-74dd-4343-9af4-891c1c2ab05b", "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/9f8c82c1-63ac-4a4c-a160-d6b739dd8533", "rel": "self"}, {"href": "http://localhost/nodes/9f8c82c1-63ac-4a4c-a160-d6b739dd8533", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9f8c82c1-63ac-4a4c-a160-d6b739dd8533/ports", "rel": "self"}, {"href": "http://localhost/nodes/9f8c82c1-63ac-4a4c-a160-d6b739dd8533/ports", "rel": "bookmark"}]}, {"uuid": "3f2a2132-ddfe-436f-9348-f098f0989eed", "created_at": "2025-05-30T17:31:54.040148+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": "6b192963-3db6-4201-b3a4-fcfaec5892b2", "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/3f2a2132-ddfe-436f-9348-f098f0989eed", "rel": "self"}, {"href": "http://localhost/nodes/3f2a2132-ddfe-436f-9348-f098f0989eed", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3f2a2132-ddfe-436f-9348-f098f0989eed/ports", "rel": "self"}, {"href": "http://localhost/nodes/3f2a2132-ddfe-436f-9348-f098f0989eed/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.072157s] ... 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-9b597b72-52fa-4daa-b60e-21cc5018fa23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestListPortsByShard.test_get_by_shard_multi [0.223891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b56d436d-6a68-4c3e-93f1-41fb16860c77 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"ports": [{"uuid": "49e132d9-b34b-4370-baa1-2e93cbcab3bd", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/49e132d9-b34b-4370-baa1-2e93cbcab3bd", "rel": "self"}, {"href": "http://localhost/ports/49e132d9-b34b-4370-baa1-2e93cbcab3bd", "rel": "bookmark"}]}, {"uuid": "5b745235-5ca2-4798-a926-b371d29350f8", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/5b745235-5ca2-4798-a926-b371d29350f8", "rel": "self"}, {"href": "http://localhost/ports/5b745235-5ca2-4798-a926-b371d29350f8", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.042781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=c840df32-b84b-4b21-8dfc-0492c25c8274 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e739f314-1e89-463a-9cb2-25a71f23a843 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "2c6f7148-c3a5-4c8b-a2d5-d5df2eee90c4", "created_at": "2025-05-30T17:31:54.100348+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": "c840df32-b84b-4b21-8dfc-0492c25c8274", "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/2c6f7148-c3a5-4c8b-a2d5-d5df2eee90c4", "rel": "self"}, {"href": "http://localhost/nodes/2c6f7148-c3a5-4c8b-a2d5-d5df2eee90c4", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2c6f7148-c3a5-4c8b-a2d5-d5df2eee90c4/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6f7148-c3a5-4c8b-a2d5-d5df2eee90c4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.032775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b87b324-20c8-433a-adbb-cd464e7eca9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"ports": [{"uuid": "e1032acd-aeb4-4c55-ab33-79102575063d", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/e1032acd-aeb4-4c55-ab33-79102575063d", "rel": "self"}, {"href": "http://localhost/ports/e1032acd-aeb4-4c55-ab33-79102575063d", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.117744s] ... 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-15449250-396b-4528-963a-f21a947a6458 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:54.053900+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_node.TestListNodes.test_empty [0.029069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78e3ef41-987d-4d2d-8f76-42306e08ce43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.036768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b1985b73-241b-4954-9fa3-6a12786ad3e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.077297s] ... 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-2fe1fe21-b7c5-4e17-a7d1-a73869083bc8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.031554s] ... 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-5839e6e3-44af-4ce7-b270-0920a4e037cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.020662s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.056501s] ... 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-700ee594-3e0d-4034-9f13-16b0c671b85a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.030161s] ... 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-c7188329-61ec-4ed4-8442-248222a4b862 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListPortgroups.test_collection_links [0.051832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4d2c780-39ae-4a74-a552-b1207846f031 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "bc0461ff-5f60-4bc5-a0a2-611a6e8ba5b0", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/bc0461ff-5f60-4bc5-a0a2-611a6e8ba5b0", "rel": "self"}, {"href": "http://localhost/portgroups/bc0461ff-5f60-4bc5-a0a2-611a6e8ba5b0", "rel": "bookmark"}]}, {"uuid": "c8a80230-d26b-4f07-bcd2-638e1fb82b3f", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/c8a80230-d26b-4f07-bcd2-638e1fb82b3f", "rel": "self"}, {"href": "http://localhost/portgroups/c8a80230-d26b-4f07-bcd2-638e1fb82b3f", "rel": "bookmark"}]}, {"uuid": "1baaafaf-3444-44d4-8e62-9b528403bab3", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/1baaafaf-3444-44d4-8e62-9b528403bab3", "rel": "self"}, {"href": "http://localhost/portgroups/1baaafaf-3444-44d4-8e62-9b528403bab3", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=1baaafaf-3444-44d4-8e62-9b528403bab3"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.076784s] ... 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-7ebdc015-b4ba-410a-8456-cad4d274122d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListNodes.test_get_automated_clean_fields [0.043008s] ... 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-6e696ef8-d239-4bee-ae06-55164ac2ffdf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_replace_chassis_id [0.053653s] ... 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-4486f60f-08d3-4da8-a7dc-e5eeab127f5c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.030924s] ... 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-6fdd028b-e289-4846-9c80-a96c96f5ad89 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"boot_device": "pxe", "persistent": true} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.043528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae7528ab-3716-425e-b9cd-00bf6f75c978 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "21c2154d-9a51-4218-a9bf-683947e7f0fe", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/21c2154d-9a51-4218-a9bf-683947e7f0fe", "rel": "self"}, {"href": "http://localhost/portgroups/21c2154d-9a51-4218-a9bf-683947e7f0fe", "rel": "bookmark"}]}, {"uuid": "5eb5c3f9-8ac4-4318-a5f9-89eff99e4aca", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/5eb5c3f9-8ac4-4318-a5f9-89eff99e4aca", "rel": "self"}, {"href": "http://localhost/portgroups/5eb5c3f9-8ac4-4318-a5f9-89eff99e4aca", "rel": "bookmark"}]}, {"uuid": "d3cfedfa-7b77-439e-a17c-9e1912d40c22", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/d3cfedfa-7b77-439e-a17c-9e1912d40c22", "rel": "self"}, {"href": "http://localhost/portgroups/d3cfedfa-7b77-439e-a17c-9e1912d40c22", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=d3cfedfa-7b77-439e-a17c-9e1912d40c22"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.041606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-673a10b4-8e81-4c6f-8bb4-52447d7cf611 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"boot_device": "pxe", "persistent": true} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.076787s] ... 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-cc3d5ffb-a750-45c6-aaf3-067e00f89a11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestListPortgroups.test_collection_links_default_limit [0.048009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7213a68e-edb6-4f7e-bfe9-3cb4bc8412a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "47ad6705-bd89-4cfd-b4a3-c37d6645fb9f", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/47ad6705-bd89-4cfd-b4a3-c37d6645fb9f", "rel": "self"}, {"href": "http://localhost/portgroups/47ad6705-bd89-4cfd-b4a3-c37d6645fb9f", "rel": "bookmark"}]}, {"uuid": "956ad827-7c93-42b0-9e76-507d4b8aa254", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/956ad827-7c93-42b0-9e76-507d4b8aa254", "rel": "self"}, {"href": "http://localhost/portgroups/956ad827-7c93-42b0-9e76-507d4b8aa254", "rel": "bookmark"}]}, {"uuid": "14fe12e6-543f-4486-823c-1b127b05e97f", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/14fe12e6-543f-4486-823c-1b127b05e97f", "rel": "self"}, {"href": "http://localhost/portgroups/14fe12e6-543f-4486-823c-1b127b05e97f", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=14fe12e6-543f-4486-823c-1b127b05e97f"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.030856s] ... 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-e3829709-991c-4c3d-b102-17d9f08c9c18 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.106340s] ... 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-588efe17-a3ed-42f3-822b-9787f3c9e15f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:54.277960+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.TestListPortgroups.test_detail [0.044283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88125ab7-61d6-40e7-b3df-1c119a624fb2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:54.368745+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_node.TestListNodes.test_get_collection_custom_fields [0.036510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a13ee583-a426-44b1-b3e9-07b6351ebbb0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "6a71b911-9d4a-4077-acc9-68466e01c0ac", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/6a71b911-9d4a-4077-acc9-68466e01c0ac", "rel": "self"}, {"href": "http://localhost/nodes/6a71b911-9d4a-4077-acc9-68466e01c0ac", "rel": "bookmark"}]}, {"uuid": "1287b5f0-4df9-4fa6-b891-27de6586a421", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1287b5f0-4df9-4fa6-b891-27de6586a421", "rel": "self"}, {"href": "http://localhost/nodes/1287b5f0-4df9-4fa6-b891-27de6586a421", "rel": "bookmark"}]}, {"uuid": "3e1a10e7-61df-41ca-a49b-dbc3cbf461a6", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/3e1a10e7-61df-41ca-a49b-dbc3cbf461a6", "rel": "self"}, {"href": "http://localhost/nodes/3e1a10e7-61df-41ca-a49b-dbc3cbf461a6", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.031910s] ... 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-34acab3c-fdd0-43f7-aeb1-eb4f3ebebb00 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.057980s] ... 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-c38c2879-effc-4db8-9202-974a95311585 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.038210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aaf03050-bae6-424a-99e0-7c6a3a7686be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "cd26a4d3-6896-46dd-b095-3e17fde6c6a6", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/cd26a4d3-6896-46dd-b095-3e17fde6c6a6", "rel": "self"}, {"href": "http://localhost/nodes/cd26a4d3-6896-46dd-b095-3e17fde6c6a6", "rel": "bookmark"}]}, {"uuid": "86bceeb8-63dd-46cd-9b97-99acab39e504", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/86bceeb8-63dd-46cd-9b97-99acab39e504", "rel": "self"}, {"href": "http://localhost/nodes/86bceeb8-63dd-46cd-9b97-99acab39e504", "rel": "bookmark"}]}, {"uuid": "27288ece-18f5-449b-8725-82a26cba1502", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/27288ece-18f5-449b-8725-82a26cba1502", "rel": "self"}, {"href": "http://localhost/nodes/27288ece-18f5-449b-8725-82a26cba1502", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.107182s] ... 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-302bba58-2ef1-442c-ab2e-ac923a8ab3e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.036063s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d31ac03-4bb6-4da1-b9df-dd1868d2e39a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:54.435103+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.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.056454s] ... 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-0b9b2dd9-feac-41dd-b0db-7a9deba75a2d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.034227s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova [0.061320s] ... 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-3463d982-5c35-4ac6-b904-b973133512e8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "882a2823-62d4-46ee-9398-ff30843685ed", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "5d8fd587-aab6-4371-bbc5-d0d8d136235b", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/882a2823-62d4-46ee-9398-ff30843685ed", "rel": "self"}, {"href": "http://localhost/nodes/882a2823-62d4-46ee-9398-ff30843685ed", "rel": "bookmark"}]}, {"uuid": "1c2c56a1-e331-43bc-a04a-5bdc165def77", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "a038f8d2-0648-45a5-846b-beb2988e2bfc", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/1c2c56a1-e331-43bc-a04a-5bdc165def77", "rel": "self"}, {"href": "http://localhost/nodes/1c2c56a1-e331-43bc-a04a-5bdc165def77", "rel": "bookmark"}]}, {"uuid": "3f0f62b9-8376-4b66-90ff-1c1ad6f5e31a", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "fc8a06fc-eee2-4faa-a9f7-a04ac7bd45a1", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/3f0f62b9-8376-4b66-90ff-1c1ad6f5e31a", "rel": "self"}, {"href": "http://localhost/nodes/3f0f62b9-8376-4b66-90ff-1c1ad6f5e31a", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.034293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8549bb40-feeb-40bd-8a72-1b5acf40dab8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:54.511518+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_node.TestListNodes.test_get_collection_pagination_no_uuid [0.034989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53203324-d03b-4ae0-bcf8-7414c9ffa17d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/20d38a79-cd92-4a0b-bea6-2e4be7e483f5", "rel": "self"}, {"href": "http://localhost/nodes/20d38a79-cd92-4a0b-bea6-2e4be7e483f5", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/f44c902e-8856-4975-83a5-3a0bea655e37", "rel": "self"}, {"href": "http://localhost/nodes/f44c902e-8856-4975-83a5-3a0bea655e37", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=f44c902e-8856-4975-83a5-3a0bea655e37"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.111648s] ... 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-9eb5f734-ec7b-4626-8ccf-909e2a80a46e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListNodes.test_get_conductor_field [0.032422s] ... 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-4b9393af-edce-4951-9089-6aebfa748e20 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.045761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddbedce9-9e41-4c13-8a9a-eed3860684ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-aef37171-2682-4921-8d63-70753da921bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.112641s] ... 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-dca3a77f-707d-4d9d-af3d-5a526cc32dd3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:54.506864+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_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.032424s] ... 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-2cdddae9-52bf-417f-bf69-909e79baec67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.096055s] ... 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-4d115829-caca-4741-a48b-7bcae3e6eb8e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.073843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e18ea8e-abfb-42c9-a145-674e168f0ce9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "5cd22cf1-d682-464b-aad9-d4a69e2b42d8", "created_at": "2025-05-30T17:31:54.606819+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/5cd22cf1-d682-464b-aad9-d4a69e2b42d8", "rel": "self"}, {"href": "http://localhost/portgroups/5cd22cf1-d682-464b-aad9-d4a69e2b42d8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/5cd22cf1-d682-464b-aad9-d4a69e2b42d8/ports", "rel": "self"}, {"href": "http://localhost/portgroups/5cd22cf1-d682-464b-aad9-d4a69e2b42d8/ports", "rel": "bookmark"}]}, {"uuid": "fb886a99-a654-475a-b421-f96380ab782a", "created_at": "2025-05-30T17:31:54.603741+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/fb886a99-a654-475a-b421-f96380ab782a", "rel": "self"}, {"href": "http://localhost/portgroups/fb886a99-a654-475a-b421-f96380ab782a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/fb886a99-a654-475a-b421-f96380ab782a/ports", "rel": "self"}, {"href": "http://localhost/portgroups/fb886a99-a654-475a-b421-f96380ab782a/ports", "rel": "bookmark"}]}, {"uuid": "054a61cb-05c3-4c1e-aff1-96eb416f595f", "created_at": "2025-05-30T17:31:54.599937+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/054a61cb-05c3-4c1e-aff1-96eb416f595f", "rel": "self"}, {"href": "http://localhost/portgroups/054a61cb-05c3-4c1e-aff1-96eb416f595f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/054a61cb-05c3-4c1e-aff1-96eb416f595f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/054a61cb-05c3-4c1e-aff1-96eb416f595f/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.056167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3496694a-b463-405d-a3e1-fb1cb9d68441 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.074048s] ... 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-2fb9edce-6deb-4465-8b28-b5a8653935da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.162650s] ... 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-5f06e0c0-36d3-4b39-a4fc-1667c440c8ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:54.624362+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_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.067295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-090a97bb-4dec-46dc-9d96-af108da0ff4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPut.test_power_state_soft_power_off_with_disable_power_off [0.081002s] ... 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-682245e9-235b-4de3-90eb-c50033b27017 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.056040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2924746-a166-4571-a168-d9fa6c339c59 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.097012s] ... 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-f26a612f-3c7a-4692-9df0-e7f07067c4a0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.076977s] ... 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-a5a2f8f5-2860-410a-bd27-7032b1936145 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.061803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8fb54f96-7992-4f06-91d2-1ee764d59f9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.046218s] ... 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-8822e78f-1a20-48ad-aa77-b3b61985de81 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.328101s] ... 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-ec026d5c-d4c5-445c-84b0-ab4524af8c71 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.039373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-785994fc-d85c-4214-a337-269d002f32af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.047966s] ... 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-f26b747d-2409-4257-b5a7-a97b6b21e033 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.086801s] ... 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-93d9d5f5-970d-43e6-9399-d2a76ee1433f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListNodes.test_get_console_information [0.032017s] ... 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-e0a2c9ee-d2af-4c90-8ff6-7aa14f10b899 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": true, "console_info": {"test": "test-data"}} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_conductor_groups [0.079978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?conductor_groups=group_a,group_b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc9a4eec-fad0-46d0-8b3b-66f7d4220d90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "1b8a7da0-391f-4339-bd0c-fe358501ef06", "address": "52:54:00:cf:2d:30", "name": "foo-0", "links": [{"href": "http://localhost/v1/portgroups/1b8a7da0-391f-4339-bd0c-fe358501ef06", "rel": "self"}, {"href": "http://localhost/portgroups/1b8a7da0-391f-4339-bd0c-fe358501ef06", "rel": "bookmark"}]}, {"uuid": "98360b60-b2e4-46d2-b9e4-4eb05622d08c", "address": "52:54:00:cf:2d:31", "name": "foo-1", "links": [{"href": "http://localhost/v1/portgroups/98360b60-b2e4-46d2-b9e4-4eb05622d08c", "rel": "self"}, {"href": "http://localhost/portgroups/98360b60-b2e4-46d2-b9e4-4eb05622d08c", "rel": "bookmark"}]}, {"uuid": "affebd75-a374-4a79-9486-29d7d4da3006", "address": "52:54:00:cf:2d:33", "name": "foo-3", "links": [{"href": "http://localhost/v1/portgroups/affebd75-a374-4a79-9486-29d7d4da3006", "rel": "self"}, {"href": "http://localhost/portgroups/affebd75-a374-4a79-9486-29d7d4da3006", "rel": "bookmark"}]}, {"uuid": "b03bce48-c598-4d79-8d9f-ee3242070e1c", "address": "52:54:00:cf:2d:34", "name": "foo-4", "links": [{"href": "http://localhost/v1/portgroups/b03bce48-c598-4d79-8d9f-ee3242070e1c", "rel": "self"}, {"href": "http://localhost/portgroups/b03bce48-c598-4d79-8d9f-ee3242070e1c", "rel": "bookmark"}]}, {"uuid": "c971b70e-effd-4c66-b0d9-9077fda1c751", "address": "52:54:00:cf:2d:35", "name": "foo-5", "links": [{"href": "http://localhost/v1/portgroups/c971b70e-effd-4c66-b0d9-9077fda1c751", "rel": "self"}, {"href": "http://localhost/portgroups/c971b70e-effd-4c66-b0d9-9077fda1c751", "rel": "bookmark"}]}]} GET /v1/portgroups?conductor_groups=group_b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7f6f183-3266-44f3-9bb7-9f7bed497b11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "affebd75-a374-4a79-9486-29d7d4da3006", "address": "52:54:00:cf:2d:33", "name": "foo-3", "links": [{"href": "http://localhost/v1/portgroups/affebd75-a374-4a79-9486-29d7d4da3006", "rel": "self"}, {"href": "http://localhost/portgroups/affebd75-a374-4a79-9486-29d7d4da3006", "rel": "bookmark"}]}, {"uuid": "b03bce48-c598-4d79-8d9f-ee3242070e1c", "address": "52:54:00:cf:2d:34", "name": "foo-4", "links": [{"href": "http://localhost/v1/portgroups/b03bce48-c598-4d79-8d9f-ee3242070e1c", "rel": "self"}, {"href": "http://localhost/portgroups/b03bce48-c598-4d79-8d9f-ee3242070e1c", "rel": "bookmark"}]}, {"uuid": "c971b70e-effd-4c66-b0d9-9077fda1c751", "address": "52:54:00:cf:2d:35", "name": "foo-5", "links": [{"href": "http://localhost/v1/portgroups/c971b70e-effd-4c66-b0d9-9077fda1c751", "rel": "self"}, {"href": "http://localhost/portgroups/c971b70e-effd-4c66-b0d9-9077fda1c751", "rel": "bookmark"}]}]} GET /v1/portgroups?conductor_groups=no_such_group WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-005f3266-69ab-483d-93fb-a891c3d517ae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.031988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f52022e-cb94-4f30-b0a4-6d8badd5d696 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_provision_already_in_state [0.090961s] ... 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-628b62a6-2f3d-4b3a-ac43-e53d7186afc8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.045250s] ... 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-99bbc341-12ec-47c2-a14c-a3ebef2c8fe8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": false, "console_info": null} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.092005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c14c9b08-d657-4a92-b1d9-61388b305cef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "3e06221a-893b-42cf-9506-73df478465ef", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/3e06221a-893b-42cf-9506-73df478465ef", "rel": "self"}, {"href": "http://localhost/portgroups/3e06221a-893b-42cf-9506-73df478465ef", "rel": "bookmark"}]}, {"uuid": "d9219053-27c7-4166-9637-db2e11a54637", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/d9219053-27c7-4166-9637-db2e11a54637", "rel": "self"}, {"href": "http://localhost/portgroups/d9219053-27c7-4166-9637-db2e11a54637", "rel": "bookmark"}]}, {"uuid": "38287c3c-d0aa-4574-9164-f2a94c016e12", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/38287c3c-d0aa-4574-9164-f2a94c016e12", "rel": "self"}, {"href": "http://localhost/portgroups/38287c3c-d0aa-4574-9164-f2a94c016e12", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.041758s] ... 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-8e258424-1c1a-408c-a647-af3aad00df23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.081452s] ... 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-af214574-a1ae-408a-b345-866ba464e961 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.041194s] ... 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-5af55322-2fda-441c-9d32-9772ca246b9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:55.133616+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_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.032416s] ... 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-6c44ab0e-95a7-48e8-a393-be23991c4512 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListNodes.test_get_custom_fields_invalid_fields [0.031669s] ... 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-c0d34522-6563-4f01-9771-6d9b033f4276 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.063528s] ... 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-0ebbfd38-3a93-4d14-8632-cb5e4488b6db X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.081071s] ... 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-f360311d-2a06-4f7b-861a-8e5b2d6188e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.043786s] ... 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-d33fee26-621e-4ffd-819e-3004a7686b18 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.364043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b111401b-3e04-4e48-8204-a28f4769b04a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1cb9776-53bc-461f-892c-06a7211fffc9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-370d9310-e193-4806-a57b-0415327d4557 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f5 7cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27b90584-6d46-49c2-a262-2961b33c718e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/ma nagement_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da160bd8-ffe2-4611-b2c9-af6559a90714 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73481f5c-eb83-4b22-a850-fe54136d5135 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-939b16d9-f1b3-4f20-a96b-8bb93ca041d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} PATCH /v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096 WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b431b112-56c5-4d0c-88ef-bafc7501bb90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f57cf783-c46c-4b1a-8492-44cbe6043096", "created_at": "2025-05-30T17:31:54.935922+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/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "self"}, {"href": "http://localhost/nodes/f57cf783-c46c-4b1a-8492-44cbe6043096/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_disable_power_off_fields [0.033185s] ... 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-2af102fd-c0b2-47c1-bb02-803fe23757f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.044736s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ebf19b6-ec9a-4f46-af0f-edfa810f7591 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "f70d0a45-9150-4053-a9ac-d59c4c013453", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/f70d0a45-9150-4053-a9ac-d59c4c013453", "rel": "self"}, {"href": "http://localhost/portgroups/f70d0a45-9150-4053-a9ac-d59c4c013453", "rel": "bookmark"}]}, {"uuid": "73e263ca-3a4a-4693-8074-a70c9c220d39", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/73e263ca-3a4a-4693-8074-a70c9c220d39", "rel": "self"}, {"href": "http://localhost/portgroups/73e263ca-3a4a-4693-8074-a70c9c220d39", "rel": "bookmark"}]}, {"uuid": "22a9f07a-c77f-489d-a5c6-e3f0ffd3bb46", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/22a9f07a-c77f-489d-a5c6-e3f0ffd3bb46", "rel": "self"}, {"href": "http://localhost/portgroups/22a9f07a-c77f-489d-a5c6-e3f0ffd3bb46", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.072464s] ... 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-1b762c68-57f1-4f73-a65a-f0fb2f30953b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.045126s] ... 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-e47e31be-0a4f-4934-a7ad-e68c641bd34d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.041375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fff27ed9-7b3e-44d6-8c99-561ab2fc85e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/cbe15100-1bf3-4266-ba29-9904022a165b", "rel": "self"}, {"href": "http://localhost/portgroups/cbe15100-1bf3-4266-ba29-9904022a165b", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/1bd52f1d-d7a2-452a-9af5-a616d48e9c0e", "rel": "self"}, {"href": "http://localhost/portgroups/1bd52f1d-d7a2-452a-9af5-a616d48e9c0e", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=1bd52f1d-d7a2-452a-9af5-a616d48e9c0e"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.048211s] ... 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-61182e31-9189-4aad-9ea0-08ad9edf69d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"state": "on"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.042552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-51cd2027-54b8-4d8a-aa2d-91923cb58bac X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_provision_invalid_state_request [0.081947s] ... 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-fe7d158e-f8f5-48c3-8fe7-5624fa0d1165 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.052491s] ... 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-9e1eccf3-0566-4f2f-8a4e-036adde2499a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.069559s] ... 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-83883b36-a2a4-4f65-8d0f-45b6870da7dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.037494s] ... 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-a9a91565-5561-4d80-bf8c-01e81b5d9665 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.046630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c62f1f0-45d4-4a1e-96cf-bf728e030eb7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:55.421965+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_node.TestListNodes.test_get_indicator_state_versioning [0.070103s] ... 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-5342dbde-7fe8-4cd0-94a4-cdbdc0214547 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"state": "on"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.095950s] ... 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-1f953b3a-a95a-4662-8d3d-03150ec8c04a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.097970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f5a2f20-f291-4c7e-8ce2-64acf209e1e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "fe44c795-1a3e-4473-a219-de1d77bb543d", "created_at": "2025-05-30T17:31:55.410365+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/fe44c795-1a3e-4473-a219-de1d77bb543d", "rel": "self"}, {"href": "http://localhost/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/states", "rel": "self"}, {"href": "http://localhost/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe44c795-1a3e-4473-a219-de1d77bb543d/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.039476s] ... 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-92028b78-91d3-4d06-9a47-3069aa2df803 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field [0.047288s] ... 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-9f80a713-cf07-4aa5-8195-e0de757f015f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.036892s] ... 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-da6e81d2-2be0-48ff-83d8-8aad16187086 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.071659s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.096523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5 WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1353d346-5679-4042-9e07-36064bcc30ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "3378a323-5fcb-48cb-a200-bdad69ebb9f5", "created_at": "2025-05-30T17:31:55.496756+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/3378a323-5fcb-48cb-a200-bdad69ebb9f5", "rel": "self"}, {"href": "http://localhost/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/ports", "rel": "self"}, {"href": "http://localhost/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/states", "rel": "self"}, {"href": "http://localhost/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/volume", "rel": "self"}, {"href": "http://localhost/nodes/3378a323-5fcb-48cb-a200-bdad69ebb9f5/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.103303s] ... 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-4ef29259-6066-4615-9884-45287c3b6fca X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.040924s] ... 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-ee6d220e-7103-45e9-a789-448097d7bcde X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.055162s] ... 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-7120f208-7140-41b9-b6a1-407f12a7fd91 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.041797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-111dddb6-4f1b-4cbd-8f43-29e5864fba92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-34244ca3-8707-4ff9-b19a-a59bf06fc527 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": [{"uuid": "ca2d7785-7196-4bcc-bb74-70d647bb0337", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ca2d7785-7196-4bcc-bb74-70d647bb0337", "rel": "self"}, {"href": "http://localhost/nodes/ca2d7785-7196-4bcc-bb74-70d647bb0337", "rel": "bookmark"}]}, {"uuid": "f5235dbe-ff3d-4509-a21b-02ff1c4126ff", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f5235dbe-ff3d-4509-a21b-02ff1c4126ff", "rel": "self"}, {"href": "http://localhost/nodes/f5235dbe-ff3d-4509-a21b-02ff1c4126ff", "rel": "bookmark"}]}]} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d2af7c9-3ce3-4505-b826-63da41fbca40 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": [{"uuid": "f5235dbe-ff3d-4509-a21b-02ff1c4126ff", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f5235dbe-ff3d-4509-a21b-02ff1c4126ff", "rel": "self"}, {"href": "http://localhost/nodes/f5235dbe-ff3d-4509-a21b-02ff1c4126ff", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.083246s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/dcf3b2f4-7840-4e4b-a878-dce6915b5bee WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ae1bf98-a022-4226-9f83-754bbbd645b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "dcf3b2f4-7840-4e4b-a878-dce6915b5bee", "created_at": "2025-05-30T17:31:55.596167+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/dcf3b2f4-7840-4e4b-a878-dce6915b5bee", "rel": "self"}, {"href": "http://localhost/nodes/dcf3b2f4-7840-4e4b-a878-dce6915b5bee", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/dcf3b2f4-7840-4e4b-a878-dce6915b5bee/ports", "rel": "self"}, {"href": "http://localhost/nodes/dcf3b2f4-7840-4e4b-a878-dce6915b5bee/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.088450s] ... 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-3785ddff-62af-4c3e-ad30-3923049b1309 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.068859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-810ad850-66b4-4e7e-9c02-93fb584bc023 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005", "rel": "self"}, {"href": "http://localhost/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005", "rel": "bookmark"}]}]} GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a6daa57-f375-42b4-bd30-f4245d342825 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "5198a366-f083-4113-834a-30795eb1a8e3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5198a366-f083-4113-834a-30795eb1a8e3", "rel": "self"}, {"href": "http://localhost/nodes/5198a366-f083-4113-834a-30795eb1a8e3", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b9ce53c-11ed-4f0c-bc89-d7a0a708cb3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005", "created_at": "2025-05-30T17:31:55.648324+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/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005", "rel": "self"}, {"href": "http://localhost/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/ports", "rel": "self"}, {"href": "http://localhost/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/states", "rel": "self"}, {"href": "http://localhost/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/volume", "rel": "self"}, {"href": "http://localhost/nodes/1a3b2ab1-c4f6-4fa9-a0ed-ff947465d005/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb371a5f-effe-4569-9 0ee-35fc10899b13 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "5198a366-f083-4113-834a-30795eb1a8e3", "created_at": "2025-05-30T17:31:55.651086+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/5198a366-f083-4113-834a-30795eb1a8e3", "rel": "self"}, {"href": "http://localhost/nodes/5198a366-f083-4113-834a-30795eb1a8e3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5198a366-f083-4113-834a-30795eb1a8e3/ports", "rel": "self"}, {"href": "http://localhost/nodes/5198a366-f083-4113-834a-30795eb1a8e3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5198a366-f083-4113-834a-30795eb1a8e3/states", "rel": "self"}, {"href": "http://localhost/nodes/5198a366-f083-4113-834a-30795eb1a8e3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5198a366-f083-4113-834a-30795eb1a8e3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5198a366-f083-4113-834a-30795eb1a8e3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5198a366-f083-4113-834a-30795eb1a8e3/volume", "rel": "self"}, {"href": "http://localhost/nodes/5198a366-f083-4113-834a-30795eb1a8e3/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_double_json_in_name [0.086702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f2d9e7b-47b2-486c-9b6f-a3be104e4357 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:55.661826+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_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.028999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-051a824c-1168-442d-9899-513aee71726f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-d4990ed2-a7f5-4f37-8d5a-cf5f2ab05185 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.055090s] ... 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-d0f25fc9-66e8-4590-b258-1c9e8d3a2f30 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:55.733297+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_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.052605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cee049e3-ea54-4c44-a1f4-f70e3f939724 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-8eb0e84a-3fa6-4f5d-ac4a-74e80f99257c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-0206782c-457e-4158-b6a8-f27325a7d776 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.045900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31e95689-a14a-4b20-b295-f80826b6cc8a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:55.782336+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.148550s] ... 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-c2a5b389-ccc0-428f-a27e-ead54ec74e2e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-c2e21555-c7c4-43af-b964-6f31a119600d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-dd1e6da2-b12c-460f-959c-4f409a43f6f9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-d61da7ad-681d-4b64-a2f0-4ce7d2fde4d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.036971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b7311f26-dfb0-49fa-adaf-e69e3925e01c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_not_found [0.041572s] ... 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-4897d401-2031-4299-929b-e5d9d4f5497d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4.json could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.048194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47a40f6c-1104-4c32-b921-1f3aefabaeee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"nodes": [{"uuid": "b1b39bde-fdd4-465b-8cb1-a9c0351b6a94", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/b1b39bde-fdd4-465b-8cb1-a9c0351b6a94", "rel": "self"}, {"href": "http://localhost/nodes/b1b39bde-fdd4-465b-8cb1-a9c0351b6a94", "rel": "bookmark"}]}]} GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20c312e2-b3cb-44ae-b90a-9491669eb328 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"nodes": [{"uuid": "dabb3fc7-fef7-4220-8aca-aa1f3b6f43cb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/dabb3fc7-fef7-4220-8aca-aa1f3b6f43cb", "rel": "self"}, {"href": "http://localhost/nodes/dabb3fc7-fef7-4220-8aca-aa1f3b6f43cb", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.038205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3be96c0-eed9-4a29-b6ee-b6f63f0c9605 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:55.865725+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.276547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f039393f-9a90-4b16-ac16-3e99ac997297 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbdd6615-26bd-4821-a907-3a1bebc117c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f039393f-9a90-4b16-ac16-3e99ac997297", "created_at": "2025-05-30T17:31:55.868061+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/f039393f-9a90-4b16-ac16-3e99ac997297", "rel": "self"}, {"href": "http://localhost/nodes/f039393f-9a90-4b16-ac16-3e99ac997297", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f039393f-9a90-4b16-ac16-3e99ac997297/ports", "rel": "self"}, {"href": "http://localhost/nodes/f039393f-9a90-4b16-ac16-3e99ac997297/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.071145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35fe8b31-562b-439f-948e-14b982475977 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": [{"uuid": "433dc443-f375-4073-9303-3f37addee850", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/433dc443-f375-4073-9303-3f37addee850", "rel": "self"}, {"href": "http://localhost/nodes/433dc443-f375-4073-9303-3f37addee850", "rel": "bookmark"}]}]} GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34d62bc7-400b-4e12-9406-6874dda15bed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": [{"uuid": "cd1d9ead-35da-4e40-aba0-3c8b1cf5499e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cd1d9ead-35da-4e40-aba0-3c8b1cf5499e", "rel": "self"}, {"href": "http://localhost/nodes/cd1d9ead-35da-4e40-aba0-3c8b1cf5499e", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.062019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-019b00e3-7b4c-46ae-9e89-d2542926c9db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "33bbc630-68bd-40ba-a6f5-7abb048ee37f", "created_at": "2025-05-30T17:31:55.904158+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/33bbc630-68bd-40ba-a6f5-7abb048ee37f", "rel": "self"}, {"href": "http://localhost/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f/ports", "rel": "bookmark"}]} GET /v1/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0b28a8c-b543-4fe6-95c6-7a2bbedf8292 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "33bbc630-68bd-40ba-a6f5-7abb048ee37f", "created_at": "2025-05-30T17:31:55.904158+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/33bbc630-68bd-40ba-a6f5-7abb048ee37f", "rel": "self"}, {"href": "http://localhost/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f/ports", "rel": "bookmark"}]} GET /portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e213b420-d774-4e53-9976-d3074ecd915a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "33bbc630-68bd-40ba-a6f5-7abb048ee37f", "created_at": "2025-05-30T17:31:55.904158+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/33bbc630-68bd-40ba-a6f5-7abb048ee37f", "rel": "self"}, {"href": "http://localhost/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/33bbc630-68bd-40ba-a6f5-7abb048ee37f/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.031321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d2cdb245-3814-47cd-ba4d-5ac5558d5b96 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.155014s] ... 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-231f0456-7ba6-4360-a256-2d9d504e0a43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-5df6c02c-5d76-4c9a-a85c-edfee7ac1e0e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-65ce5aa3-6484-4983-9c7d-31b18db24b27 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-bdf04d67-a01f-45d3-b360-1ecaf3b562d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.057054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b5afe25-9157-4c9d-95c1-a1642e0430d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "385a3da8-25f4-40d8-9bfa-7f36de47cfdb", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/385a3da8-25f4-40d8-9bfa-7f36de47cfdb", "rel": "self"}, {"href": "http://localhost/portgroups/385a3da8-25f4-40d8-9bfa-7f36de47cfdb", "rel": "bookmark"}]}, {"uuid": "8e86d73a-eda2-457f-a915-956ab1115455", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/8e86d73a-eda2-457f-a915-956ab1115455", "rel": "self"}, {"href": "http://localhost/portgroups/8e86d73a-eda2-457f-a915-956ab1115455", "rel": "bookmark"}]}, {"uuid": "0f7bb3d0-36a8-4180-b063-ac07306817e9", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/0f7bb3d0-36a8-4180-b063-ac07306817e9", "rel": "self"}, {"href": "http://localhost/portgroups/0f7bb3d0-36a8-4180-b063-ac07306817e9", "rel": "bookmark"}]}, {"uuid": "dfea424e-e9d0-4a9c-a49d-51690274923e", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/dfea424e-e9d0-4a9c-a49d-51690274923e", "rel": "self"}, {"href": "http://localhost/portgroups/dfea424e-e9d0-4a9c-a49d-51690274923e", "rel": "bookmark"}]}, {"uuid": "6c8e7476-32a3-4e55-8b84-8269f9857a6f", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/6c8e7476-32a3-4e55-8b84-8269f9857a6f", "rel": "self"}, {"href": "http://localhost/portgroups/6c8e7476-32a3-4e55-8b84-8269f9857a6f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.094205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909 WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7eb1b5a2-342e-4476-8e39-3da7ef77a39a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "6435a7a0-2d7d-4416-bc23-44a749fc7909", "created_at": "2025-05-30T17:31:55.967362+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/6435a7a0-2d7d-4416-bc23-44a749fc7909", "rel": "self"}, {"href": "http://localhost/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/ports", "rel": "self"}, {"href": "http://localhost/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/states", "rel": "self"}, {"href": "http://localhost/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/volume", "rel": "self"}, {"href": "http://localhost/nodes/6435a7a0-2d7d-4416-bc23-44a749fc7909/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.066683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-049ac07e-1c70-41db-ae3b-2fd8c3cb912e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "4d404a8a-a823-482e-9384-0d9923eb30d4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4", "rel": "self"}, {"href": "http://localhost/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4", "rel": "bookmark"}]}]} GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6038da0-d68a-4b86-80f4-d7f6f643f09e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "bdcf882b-f018-423c-aff8-d6c3c17fcac8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8", "rel": "self"}, {"href": "http://localhost/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d55d382c-2ba7-46c5-91aa-383986e2aa0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "4d404a8a-a823-482e-9384-0d9923eb30d4", "created_at": "2025-05-30T17:31:55.997676+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/4d404a8a-a823-482e-9384-0d9923eb30d4", "rel": "self"}, {"href": "http://localhost/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/states", "rel": "self"}, {"href": "http://localhost/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/volume", "rel": "self"}, {"href": "http://localhost/nodes/4d404a8a-a823-482e-9384-0d9923eb30d4/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ac00ab8-54fc-416f-808b-0df196bba2e4 X-Openstack-Ironic-Api-Maximum-V ersion: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "bdcf882b-f018-423c-aff8-d6c3c17fcac8", "created_at": "2025-05-30T17:31:55.999222+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/bdcf882b-f018-423c-aff8-d6c3c17fcac8", "rel": "self"}, {"href": "http://localhost/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/ports", "rel": "self"}, {"href": "http://localhost/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/states", "rel": "self"}, {"href": "http://localhost/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/volume", "rel": "self"}, {"href": "http://localhost/nodes/bdcf882b-f018-423c-aff8-d6c3c17fcac8/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.037611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-998364a6-a223-4767-8711-f9de6df49ba3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestPut.test_provision_rescue_no_password [0.083702s] ... 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-d05b2a22-7b97-46e4-9078-da5d150c3afa X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.045179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/910e44b9-0687-4fa9-a10b-cb24e243d7da WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-65eed785-c8dd-478a-bdf4-2e77c2dd3a60 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.033286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-999cb5d9-b64a-4611-b125-ccc1594c2fb4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-bbc3bc32-53a0-4aca-b6bc-4472156c4206 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.054983s] ... 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-6099c4c8-7e62-4589-a341-75e828acf821 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "35375f59-fe4e-4d4b-ad7d-6619c1004861", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/35375f59-fe4e-4d4b-ad7d-6619c1004861", "rel": "self"}, {"href": "http://localhost/portgroups/35375f59-fe4e-4d4b-ad7d-6619c1004861", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false [0.056341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a6c65b53-bb4b-4da2-b813-80d5955d97d5 WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-31df70b2-1718-48fb-8bef-5820f96e195a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.053432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7c0b2566-973e-4c13-8ec5-0273681053bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-b6bde040-d821-486d-bb23-f2d7f5f12431 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.043110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a737b5cf-8296-419f-afe5-4f22dd4f74df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.090440s] ... 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-4588f665-579b-4185-96aa-7bcc939175bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.042073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-358b0298-07ca-4e56-814d-681df97601eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.046566s] ... 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-db32f4c9-bc04-40bf-900d-c02e3388bde3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.039230s] ... 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-dd409f62-09d9-4bac-8a95-a0b316a22003 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.026422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-26ed2034-227d-4972-9f36-d739a8f86cfb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.030975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1ce295c-5cbf-48d0-9925-ef8e1e711dbf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.029213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b512d115-d315-468b-ae19-d6c635447284 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_update_conductor_group [0.085238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3bf93bfa-d938-41a2-8504-405e900d2417 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "8ff895d2-a158-4923-a865-e8d9f2fefadc", "created_at": "2025-05-30T17:31:56.204331+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/8ff895d2-a158-4923-a865-e8d9f2fefadc", "rel": "self"}, {"href": "http://localhost/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/ports", "rel": "self"}, {"href": "http://localhost/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/states", "rel": "self"}, {"href": "http://localhost/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/volume", "rel": "self"}, {"href": "http://localhost/nodes/8ff895d2-a158-4923-a865-e8d9f2fefadc/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.073180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-751f4b37-b62f-4c18-bd02-1247251c8403 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_provision_unrescue_in_allowed_states [0.127234s] ... 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-c4654ac2-506b-45d3-98df-918938c0710c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-f86500c3-edb6-41d0-8f43-cc1a63f61171 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-8b131148-1bc2-4a8c-b7df-8e1beb45e9b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee [0.051774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-def137ba-a5a6-46f5-8826-99e47a50c23c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "d52a3665-f952-4aa9-9632-1f67fb0aae1b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b", "rel": "self"}, {"href": "http://localhost/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b", "rel": "bookmark"}]}]} GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14d52536-30bc-4800-994b-0b0dd5d6c000 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "af0f9aa9-c55c-4505-96fe-b057dd3f9a28", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28", "rel": "self"}, {"href": "http://localhost/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51fd9447-5296-4cc1-a7c3-7d486fe33a75 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "d52a3665-f952-4aa9-9632-1f67fb0aae1b", "created_at": "2025-05-30T17:31:56.272717+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/d52a3665-f952-4aa9-9632-1f67fb0aae1b", "rel": "self"}, {"href": "http://localhost/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b/ports", "rel": "self"}, {"href": "http://localhost/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b/states", "rel": "self"}, {"href": "http://localhost/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d52a3665-f952-4aa9-9632-1f67fb0aae1b/volume", "rel": "self"}, {"href": "http://localhost/nodes/d52a3665-f952-4aa9- 9632-1f67fb0aae1b/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ba46875-8714-43d8-b5ad-be3228bcc108 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "af0f9aa9-c55c-4505-96fe-b057dd3f9a28", "created_at": "2025-05-30T17:31:56.274257+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/af0f9aa9-c55c-4505-96fe-b057dd3f9a28", "rel": "self"}, {"href": "http://localhost/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/ports", "rel": "self"}, {"href": "http://localhost/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/states", "rel": "self"}, {"href": "http://localhost/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/volume", "rel": "self"}, {"href": "http://localhost/nodes/af0f9aa9-c55c-4505-96fe-b057dd3f9a28/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.053923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/767a819d-55f6-490f-b1a2-fbdc808010cc WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e23104cb-7323-4a41-9427-7b5fd7e3a79b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.028566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3ed88b93-a70d-4d55-9f34-9560074f267e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-f8966c0f-e687-4588-92ac-d3edd9baafc5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.104564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/08a03bc8-fd97-44a6-b324-1a4973cbff1a/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-102d0c73-8520-492e-8b96-292648f726f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "c8959e7e-9670-43e5-a9c6-79151a1db7ea", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/c8959e7e-9670-43e5-a9c6-79151a1db7ea", "rel": "self"}, {"href": "http://localhost/ports/c8959e7e-9670-43e5-a9c6-79151a1db7ea", "rel": "bookmark"}]}, {"uuid": "c6687e94-ae7d-4ac2-949b-7e2bcf91dc1d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c6687e94-ae7d-4ac2-949b-7e2bcf91dc1d", "rel": "self"}, {"href": "http://localhost/ports/c6687e94-ae7d-4ac2-949b-7e2bcf91dc1d", "rel": "bookmark"}]}]} GET /v1/portgroups/08a03bc8-fd97-44a6-b324-1a4973cbff1a/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56d28495-6a9d-4346-8770-e722c274c391 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "c8959e7e-9670-43e5-a9c6-79151a1db7ea", "created_at": "2025-05-30T17:31:56.289581+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/c8959e7e-9670-43e5-a9c6-79151a1db7ea", "rel": "self"}, {"href": "http://localhost/ports/c8959e7e-9670-43e5-a9c6-79151a1db7ea", "rel": "bookmark"}], "portgroup_uuid": "08a03bc8-fd97-44a6-b324-1a4973cbff1a"}, {"uuid": "c6687e94-ae7d-4ac2-949b-7e2bcf91dc1d", "created_at": "2025-05-30T17:31:56.292562+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/c6687e94-ae7d-4ac2-949b-7e2bcf91dc1d", "rel": "self"}, {"href": "http://localhost/ports/c6687e94-ae7d-4ac2-949b-7e2bcf91dc1d", "rel": "bookmark"}], "portgroup_uuid": "08a03bc8-fd97-44a6-b324-1a4973cbff1a"}]} GET /v1/portgroups/08a03bc8-fd97-44a6-b324-1a4973cbff1a/ports?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51f83f4d-0103-4ed1-9333-2d5f134b794c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "c8959e7e-9670-43e5-a9c6-79151a1db7ea", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/c8959e7e-9670-43e5-a9c6-79151a1db7ea", "rel": "self"}, {"href": "http://localhost/ports/c8959e7e-9670-43e5-a9c6-79151a1db7ea", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=c8959e7e-9670-43e5-a9c6-79151a1db7ea"} GET /v1/portgroups/08a03bc8-fd97-44a6-b324-1a4973cbff1a/ports/58978512-c4bd-4328-b576-327fa3b4af35 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET /v1/portgroups/08a03bc8-fd97-44a6-b324-1a4973cbff1a/ports/83c2cb13-c219-4233-99a7-8426ac631e30 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4486e707-4e8a-4cff-a1dd-87e75f8e9e44 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debug info\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.051284s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9fb478c-2b05-4f38-89ef-53fa38eb1468 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "5944e3cb-a486-4344-aed9-75fded7eae23", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5944e3cb-a486-4344-aed9-75fded7eae23", "rel": "self"}, {"href": "http://localhost/nodes/5944e3cb-a486-4344-aed9-75fded7eae23", "rel": "bookmark"}]}]} GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-add0f6e7-fdd6-452f-b492-6f4a2d80e06c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "d528c4ed-e746-4826-b6c9-6e19362429c3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3", "rel": "self"}, {"href": "http://localhost/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83d64ad3-3dab-43a5-a0d3-d76f921ef0e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "5944e3cb-a486-4344-aed9-75fded7eae23", "created_at": "2025-05-30T17:31:56.353847+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/5944e3cb-a486-4344-aed9-75fded7eae23", "rel": "self"}, {"href": "http://localhost/nodes/5944e3cb-a486-4344-aed9-75fded7eae23", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/ports", "rel": "self"}, {"href": "http://localhost/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/states", "rel": "self"}, {"href": "http://localhost/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/volume", "rel": "self"}, {"href": "http://localhost/nodes/5944e3cb-a486-4344-aed9-75fded7eae23/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37ea89c3-fbaa-4048-8b69-40741fb27209 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "d528c4ed-e746-4826-b6c9-6e19362429c3", "created_at": "2025-05-30T17:31:56.355684+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/d528c4ed-e746-4826-b6c9-6e19362429c3", "rel": "self"}, {"href": "http://localhost/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/ports", "rel": "self"}, {"href": "http://localhost/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/states", "rel": "self"}, {"href": "http://localhost/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/volume", "rel": "self"}, {"href": "http://localhost/nodes/d528c4ed-e746-4826-b6c9-6e19362429c3/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.036317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/7683ae7d-ca1d-47b9-ade3-fe1f877f544b/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_node.TestPatch.test_update_description [0.092157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62 WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b92d73a2-96d4-4a78-b6ac-40657a600bd8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "68def72b-f70b-4129-9cc8-196ae75a4f62", "created_at": "2025-05-30T17:31:56.343348+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/68def72b-f70b-4129-9cc8-196ae75a4f62", "rel": "self"}, {"href": "http://localhost/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/ports", "rel": "self"}, {"href": "http://localhost/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/states", "rel": "self"}, {"href": "http://localhost/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/volume", "rel": "self"}, {"href": "http://localhost/nodes/68def72b-f70b-4129-9cc8-196ae75a4f62/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.034873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-140e30fb-0793-483e-8d9e-e75d94454ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-41239810-5719-4029-86d3-9f5bb3a1a017 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.031728s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.176794s] ... 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-148f9c48-8bd1-409c-930d-892b19c9aa18 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-01c9bf70-5939-47bd-9996-ebf67df82fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-6240aee3-5f63-4b44-803e-03c0a6782537 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-2ecc6058-0f12-4393-96cb-565e1a68d925 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-c8677652-aea4-43bc-b7b4-e95a68109b61 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.059019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/dd91eba0-a892-407f-999a-0539a7fb80c1 WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812 3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-72d14cfd-40ee-4dd6-9b0f-a54c3e2a40c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.036243s] ... 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-401e4ddf-6bc7-49ae-b92c-c8380358dc62 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.053723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0b2c1b6-1ece-4830-b48d-f5613bdd9984 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"nodes": [{"uuid": "68798631-55b0-4013-9720-26d916b42428", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/68798631-55b0-4013-9720-26d916b42428", "rel": "self"}, {"href": "http://localhost/nodes/68798631-55b0-4013-9720-26d916b42428", "rel": "bookmark"}]}]} GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00604f9a-5eeb-4385-bcd5-a9d9961cc2f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"nodes": [{"uuid": "995f0626-2029-4405-90a3-3511f8b953c8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/995f0626-2029-4405-90a3-3511f8b953c8", "rel": "self"}, {"href": "http://localhost/nodes/995f0626-2029-4405-90a3-3511f8b953c8", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.034886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2db79167-5532-4802-869b-8d8e104ec7db X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.046377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d556b4bc-aa37-4ed3-b6f8-45d29f625c0c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "0c8f7dac-988f-4792-a702-656564393c5f", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/0c8f7dac-988f-4792-a702-656564393c5f", "rel": "self"}, {"href": "http://localhost/portgroups/0c8f7dac-988f-4792-a702-656564393c5f", "rel": "bookmark"}]}, {"uuid": "33eab527-6ae8-4857-a6d7-69d0330b2759", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/33eab527-6ae8-4857-a6d7-69d0330b2759", "rel": "self"}, {"href": "http://localhost/portgroups/33eab527-6ae8-4857-a6d7-69d0330b2759", "rel": "bookmark"}]}, {"uuid": "f688b487-352c-4e34-a932-b50cb7ec2a21", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/f688b487-352c-4e34-a932-b50cb7ec2a21", "rel": "self"}, {"href": "http://localhost/portgroups/f688b487-352c-4e34-a932-b50cb7ec2a21", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.081142s] ... 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-1839ac7a-ce25-49b4-bcde-60d4cb19144c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.040065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a217ff95-a6c3-4a8e-91fe-033e12b920ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "d78a5aea-c0cd-4f60-a0fa-e176a2bb62b1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d78a5aea-c0cd-4f60-a0fa-e176a2bb62b1", "rel": "self"}, {"href": "http://localhost/nodes/d78a5aea-c0cd-4f60-a0fa-e176a2bb62b1", "rel": "bookmark"}]}]} GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c649d06-0c8b-4048-90f7-d30269e61e5a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "c7cad3ea-cdc3-4fe0-bc46-485356362fbf", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c7cad3ea-cdc3-4fe0-bc46-485356362fbf", "rel": "self"}, {"href": "http://localhost/nodes/c7cad3ea-cdc3-4fe0-bc46-485356362fbf", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.094887s] ... 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-b554dc36-641f-4adb-85b7-458653818be1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.049426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1c372a3-12fa-4d65-b825-c67a43021455 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "7d7b8476-497f-4d51-979b-4615f417c39e", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/7d7b8476-497f-4d51-979b-4615f417c39e", "rel": "self"}, {"href": "http://localhost/portgroups/7d7b8476-497f-4d51-979b-4615f417c39e", "rel": "bookmark"}]}, {"uuid": "fec1004d-7ad3-4e34-a7d0-5a81088e3ea7", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/fec1004d-7ad3-4e34-a7d0-5a81088e3ea7", "rel": "self"}, {"href": "http://localhost/portgroups/fec1004d-7ad3-4e34-a7d0-5a81088e3ea7", "rel": "bookmark"}]}, {"uuid": "1c1ab347-8bae-4913-aaba-f288973e50b4", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/1c1ab347-8bae-4913-aaba-f288973e50b4", "rel": "self"}, {"href": "http://localhost/portgroups/1c1ab347-8bae-4913-aaba-f288973e50b4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.050822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8573a9bd-15c9-49f9-86aa-1f4dbc42cab4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "4c9daa11-ab96-4a17-b88a-abfbec455019", "created_at": "2025-05-30T17:31:56.577429+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/4c9daa11-ab96-4a17-b88a-abfbec455019", "rel": "self"}, {"href": "http://localhost/nodes/4c9daa11-ab96-4a17-b88a-abfbec455019", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4c9daa11-ab96-4a17-b88a-abfbec455019/ports", "rel": "self"}, {"href": "http://localhost/nodes/4c9daa11-ab96-4a17-b88a-abfbec455019/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4c9daa11-ab96-4a17-b88a-abfbec455019/states", "rel": "self"}, {"href": "http://localhost/nodes/4c9daa11-ab96-4a17-b88a-abfbec455019/states", "rel": "bookmark"}]}]} GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d80022c0-6b53-4d65-8055-dfa47eba1ee0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "5581de18-fb0a-4384-b829-930d80bc071c", "created_at": "2025-05-30T17:31:56.578854+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/5581de18-fb0a-4384-b829-930d80bc071c", "rel": "self"}, {"href": "http://localhost/nodes/5581de18-fb0a-4384-b829-930d80bc071c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5581de18-fb0a-4384-b829-930d80bc071c/ports", "rel": "self"}, {"href": "http://localhost/nodes/5581de18-fb0a-4384-b829-930d80bc071c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5581de18-fb0a-4384-b829-930d80bc071c/states", "rel": "self"}, {"href": "http://localhost/nodes/5581de18-fb0a-4384-b829-930d80bc071c/states", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.032107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7fc4db49-75fb-4800-9300-64496db626e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_update_fails_bad_driver_info [0.091983s] ... 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-32de5519-2ab0-4c25-ae37-249f9c7ee0fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.027317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1582e6bb-a38e-48db-ac2f-6ec7b669fd1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.028516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed2a1daa-fd48-4b56-863a-3d8896876de1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_bios_boot_mode [0.053580s] ... 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-cb70e878-04c2-476e-8bf7-936f42c267c6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.028902s] ... 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-a01f537d-483d-41d3-88a3-513a146d0226 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_uefi_boot_mode [0.040463s] ... 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-b4d38e3d-c170-414c-8371-9d747126fffc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.044582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2675724f-ef3a-4e1b-bf1d-429a1e30d53a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:56.749697+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid [0.214795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-81b7242a-af7c-46f4-8c84-9bf645c65364 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-3d426dcf-ca1f-4697-8023-32bad8b50112 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-52bdbba9-2d9e-45cc-a4fe-227e77cf98bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-3a6f206b-5f73-44a5-89db-de3c90f05504 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_invalid_boot_mode [0.042653s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.025790s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c38add43-616f-4a8a-8313-73878ca49b54 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict [0.038932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72d0fae1-3386-4e54-a1f2-8016690f5593 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:56.788664+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_node.TestListNodes.test_get_one_custom_fields [0.036052s] ... 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-34461bff-dbe0-4cf1-aff6-2fa7bb583f62 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.050427s] ... 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-aa429607-1f02-425d-9cac-c3f926b1d817 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:56.829710+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_as_list [0.036555s] ... 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-1c13ed74-b5da-4ae4-94d3-32d54a885155 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.048041s] ... 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-5bbf0cec-9ad3-4f7f-b0bc-f611b2bfdc7e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestListNodes.test_get_one_custom_fields_show_password [0.046030s] ... 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-1782a733-6266-4dd4-846a-f8dbe35813ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.042256s] ... 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-63aa53d9-f96e-49ee-876c-ed11335a4587 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:56.923158+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_node.TestListNodes.test_get_one_with_deleted_chassis [0.036415s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b53714a2-e825-4142-8d82-5614e0d36f1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:56.946642+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.041031s] ... 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-4e7f6ec5-e62f-4662-b3b1-bdb1e954d54b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:56.964815+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_node.TestListNodes.test_get_one_with_double_json_in_name [0.040743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55d0c546-dc8e-42e6-b61a-89ae46e0f1fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:56.981993+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.040737s] ... 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-0a1ececc-dc02-4716-8216-1ad1abd7e98c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.501656s] ... 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-6c13f2d9-2e3e-4482-b29f-745c51bd643c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_get_one_with_json [0.049282s] ... 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-e277b67b-d70e-47ff-a7ba-91fd76f96a6d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:57.037427+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.044480s] ... 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-7c02e420-c4a8-465e-adf2-e135dc21d56d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.048986+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.040852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8357ae80-56a4-498f-be25-fd9a4a4ed3ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:57.073678+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_portgroup.TestPatch.test_remove_mode_not_allowed [0.038838s] ... 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-d99eab4f-5b82-42cd-a827-814974eb29f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_not_found [0.032560s] ... 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-d2c1ba52-9db5-4396-9351-37c28276ec37 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestPut.test_provision_with_deploy [0.093999s] ... 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-babfc474-06cd-401e-b235-1f5aeabcdb4e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.085634s] ... 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-3724b7bc-1ff3-493d-8f97-bf3de32c2414 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.139927+00:00", "updated_at": "2025-05-30T17:31:57.149019+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-6d619522-adfe-4246-b6dd-f188f7205531 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.139927+00:00", "updated_at": "2025-05-30T17:31:57.149019+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.105610s] ... 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-bd2c0a40-fa92-4e80-bed9-a34d8007f69e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.065947s] ... 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-36ef3c39-bd14-4a08-91f5-897bcaf153c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.499733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c180c040-93ad-43d7-a1e4-43038a816cfc WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e14e08f3-8931-4930-8830-ef796cc89d89 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "c180c040-93ad-43d7-a1e4-43038a816cfc", "created_at": "2025-05-30T17:31:56.821844+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/c180c040-93ad-43d7-a1e4-43038a816cfc", "rel": "self"}, {"href": "http://localhost/nodes/c180c040-93ad-43d7-a1e4-43038a816cfc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c180c040-93ad-43d7-a1e4-43038a816cfc/ports", "rel": "self"}, {"href": "http://localhost/nodes/c180c040-93ad-43d7-a1e4-43038a816cfc/ports", "rel": "bookmark"}]} PATCH /v1/nodes/b0c0577c-0678-4184-a31f-aef220f0ea08 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37113399-8860-4823-937a-ba9940c8e04e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b0c0577c-0678-4184-a31f-aef220f0ea08", "created_at": "2025-05-30T17:31:56.878782+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/b0c0577c-0678-4184-a31f-aef220f0ea08", "rel": "self"}, {"href": "http://localhost/nodes/b0c0577c-0678-4184-a31f-aef220f0ea08", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b0c0577c-0678-4184-a31f-aef220f0ea08/ports", "rel": "self"}, {"href": "http://localhost/nodes/b0c0577c-0678-4184-a31f-aef220f0ea08/ports", "rel": "bookmark"}]} PATCH /v1/nodes/62dfe52b-bc35-4f08-b5b1-275d9cb44e9a WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7dbd054d-64a2-4291-938d-bd785698b4de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "62dfe52b-bc35-4f08-b5b1-275d9cb44e9a", "created_at": "2025-05-30T17:31:56.909226+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/62dfe52b-bc35-4f08-b5b1-275d9cb44e9a", "rel": "self"}, {"href": "http://localhost/nodes/62dfe52b-bc35-4f08-b5b1-275d9cb44e9a", "rel": "bookmark"} ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/62dfe52b-bc35-4f08-b5b1-275d9cb44e9a/ports", "rel": "self"}, {"href": "http://localhost/nodes/62dfe52b-bc35-4f08-b5b1-275d9cb44e9a/ports", "rel": "bookmark"}]} PATCH /v1/nodes/226f38b5-c51b-40a9-a5a0-8e80cefe3fc0 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d931f30-0b19-426b-bfdd-6aee942fce5d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "226f38b5-c51b-40a9-a5a0-8e80cefe3fc0", "created_at": "2025-05-30T17:31:56.938477+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/226f38b5-c51b-40a9-a5a0-8e80cefe3fc0", "rel": "self"}, {"href": "http://localhost/nodes/226f38b5-c51b-40a9-a5a0-8e80cefe3fc0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/226f38b5-c51b-40a9-a5a0-8e80cefe3fc0/ports", "rel": "self"}, {"href": "http://localhost/nodes/226f38b5-c51b-40a9-a5a0-8e80cefe3fc0/ports", "rel": "bookmark"}]} PATCH /v1/nodes/51e9b367-0385-49d4-a719-e0f60d5b6898 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-847dec65-6039-4187-b146-afcf6d199ca3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "51e9b367-0385-49d4-a719-e0f60d5b6898", "created_at": "2025-05-30T17:31:56.968940+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/51e9b367-0385-49d4-a719-e0f60d5b6898", "rel": "self"}, {"href": "http://localhost/nodes/51e9b367-0385-49d4-a719-e0f60d5b6898", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/51e9b367-0385-49d4-a719-e0f60d5b6898/ports", "rel": "self"}, {"href": "http://localhost/nodes/51e9b367-0385-49d4-a719-e0f60d5b6898/ports", "rel": "bookmark"}]} PATCH /v1/nodes/98a3d996-6c47-4e64-95b4-7dfa8d328f54 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-244d08d1-b608-4d52-addf-29881ed10093 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "98a3d996-6c47-4e64-95b4-7dfa8d328f54", "created_at": "2025-05-30T17:31:56.996609+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/98a3d996-6c47-4e64-95b4-7dfa8d328f54", "rel": "self"}, {"href": "http://localhost/nodes/98a3d996-6c47-4e64-95b4-7dfa8d328f54", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/98a3d996-6c47-4e64-95b4-7dfa8d328f54/ports", "rel": "self"}, {"href": "http://localhost/nodes/98a3d996-6c47-4e64-95b4-7dfa8d328f54/ports", "rel": "bookmark"}]} PATCH /v1/nodes/238589cb-313f-4985-92fe-4765f81c05cc WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ab0d8db-4e0a-4f6a-b082-f431dbc74eac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "238589cb-313f-4985-92fe-4765f81c05cc", "created_at": "2025-05-30T17:31:57.034352+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/238589cb-313f-4985-92fe-4765f81c05cc", "rel": "self"}, {"href": "http://localhost/nodes/238589cb-313f-4985-92fe-4765f81c05cc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/238589cb-313f-4985-92fe-4765f81c05cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/238589cb-313f-4985-92fe-4765f81c05cc/ports", "rel": "bookmark"}]} PATCH /v1/nodes/062aa412-d441-453c-9ea2-657c51e121ed WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5378c38-f659-481b-9eb3-32107173e48d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "062aa412-d441-453c-9ea2-657c51e121ed", "created_at": "2025-05-30T17:31:57.071691+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/062aa412-d441-453c-9ea2-657c51e121ed", "rel": "self"}, {"href": "http://localhost/nodes/062aa412-d441-453c-9ea2-657c51e121ed", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/062aa412-d441-453c-9ea2-657c51e121ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/062aa412-d441-453c-9ea2-657c51e121ed/ports", "rel": "bookmark"}]} PATCH /v1/nodes/1d1bf562-f131-4ab3-a400-355a50778da8 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d35a241-4963-4630-a0e4-3dfd380c4227 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1d1bf562-f131-4ab3-a400-355a50778da8", "created_at": "2025-05-30T17:31:57.103498+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/1d1bf562-f131-4ab3-a400-355a50778da8", "rel": "self"}, {"href": "http://localhost/nodes/1d1bf562-f131-4ab3-a400-355a50778da8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1d1bf562-f131-4ab3-a400-355a50778da8/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d1bf562-f131-4ab3-a400-355a50778da8/ports", "rel": "bookmark"}]} PATCH /v1/nodes/d1fd1dbb-3a56-4201-b72b-123f8dc32675 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cfda80ea-0bb8-4281-8786-1f16ff253eed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d1fd1dbb-3a56-4201-b72b-123f8dc32675", "created_at": "2025-05-30T17:31:57.139043+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/d1fd1dbb-3a56-4201-b72b-123f8dc32675", "rel": "self"}, {"href": "http://localhost/nodes/d1fd1dbb-3a56-4201-b72b-123f8dc32675", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d1fd1dbb-3a56-4201-b72b-123f8dc32675/ports", "rel": "self"}, {"href": "http://localhost/nodes/d1fd1dbb-3a56-4201-b72b-123f8dc32675/ports", "rel": "bookmark"}]} PATCH /v1/nodes/a29de583-1a52-4422-9b79-cc57f9be5f0c WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00efaa6a-ca9d-4487-a2e1-ab3f1680ba6a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a29de583-1a52-4422-9b79-cc57f9be5f0c", "created_at": "2025-05-30T17:31:57.177589+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/a29de583-1a52-4422-9b79-cc57f9be5f0c", "rel": "self"}, {"href": "http://localhost/nodes/a29de583-1a52-4422-9b79-cc57f9be5f0c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a29de583-1a52-4422-9b79-cc57f9be5f0c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a29de583-1a52-4422-9b79-cc57f9be5f0c/ports", "rel": "bookmark"}]} PATCH /v1/nodes/b9a99150-4691-497b-bf33-58c324dd5c84 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57081a83-8169-488e-94fa-24243a9bfb1b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b9a99150-4691-497b-bf33-58c324dd5c84", "created_at": "2025-05-30T17:31:57.225375+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/b9a99150-4691-497b-bf33-58c324dd5c84", "rel": "self"}, {"href": "http://localhost/nodes/b9a99150-4691-497b-bf33-58c324dd5c84", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b9a99150-4691-497b-bf33-58c324dd5c84/ports", "rel": "self"}, {"href": "http://localhost/nodes/b9a99150-4691-497b-bf33-58c324dd5c84/ports", "rel": "bookmark"}]} PATCH /v1/nodes/efb18bf0-d651-4559-97a5-cab070736579 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b3974fa-12e5-4374-a3b7-6d036fb8cee0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "efb18bf0-d651-4559-97a5-cab070736579", "created_at": "2025-05-30T17:31:57.254468+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/efb18bf0-d651-4559-97a5-cab070736579", "rel": "self"}, {"href": "http://localhost/nodes/efb18bf0-d651-4559-97a5-cab070736579", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/efb18bf0-d651-4559-97a5-cab070736579/ports", "rel": "self"}, {"href": "http://localhost/nodes/efb18bf0-d651-4559-97a5-cab070736579/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.079517s] ... 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-c98bea20-a46e-4fd6-b77d-d16ad18cb325 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPut.test_provision_with_deploy_configdrive [0.108705s] ... 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-7c236453-a0aa-47d0-99ff-629f4e358050 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.091928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/89925747-d91e-4c82-aa15-12dd10733dbc WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3be14658-a710-41bd-9186-be73f079df5f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "89925747-d91e-4c82-aa15-12dd10733dbc", "created_at": "2025-05-30T17:31:57.322559+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/89925747-d91e-4c82-aa15-12dd10733dbc", "rel": "self"}, {"href": "http://localhost/nodes/89925747-d91e-4c82-aa15-12dd10733dbc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/ports", "rel": "self"}, {"href": "http://localhost/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/states", "rel": "self"}, {"href": "http://localhost/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/volume", "rel": "self"}, {"href": "http://localhost/nodes/89925747-d91e-4c82-aa15-12dd10733dbc/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.038739s] ... 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-e0905eae-7a2e-412a-8108-d8e27038c82e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.044019s] ... 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-1a036c96-e9ba-4ae0-879f-8a799cb47816 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.057768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d65af823-08e3-45b4-bb15-a91fc92d1925 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-84df62fb-1f0c-482c-a2c1-7fa4e4964b98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"d65af823-08e3-45b4-bb15-a91fc92d1925\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.094272s] ... 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-dc1f3251-0189-4096-bc54-4f5d3f9532b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.050188s] ... 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-be0eb7a6-028f-49df-afcf-d6943646233f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.450128+00:00", "updated_at": "2025-05-30T17:31:57.457507+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_node.TestListNodes.test_get_one_with_no_agent_secret [0.390392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce036093-8aa8-4687-9f08-ec99ad61f0be X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:57.504180+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.079509s] ... 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-8ec98133-128a-46bd-b14f-581bf76216e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.044135s] ... 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-e145fe64-6a25-430d-9ce4-75a616fa12cf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestListNodes.test_get_one_with_suffix [0.047072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa9cd0f2-2e5c-424a-9500-b4066c8ac638 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:31:57.548328+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.056376s] ... 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-3db39ce5-81e3-41e7-bfd7-22e279c6c960 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.555189+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.092717s] ... 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-4d954781-49a7-41e0-85cb-c2815930c715 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.063110s] ... 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-4ead18e3-2b00-43b7-9a4e-091b08a72fa6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.048939s] ... 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-6ac4fc3b-774c-4e60-a2f3-e99e0de744ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestListNodes.test_get_protected_fields [0.032137s] ... 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-3dcd8a6f-53e6-413e-a093-b9973347966e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields [0.034556s] ... 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-b5d06200-2a84-46a6-ad9b-81537113b18c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.071805s] ... 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-6c864737-a4a0-4567-91b3-3720983c4aa9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.676129+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.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.116536s] ... 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-cf8a9295-5093-478e-92a5-6ffd51246da2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.039905s] ... 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-59af865a-c069-44e9-bbdb-ec548f0cd4ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.042314s] ... 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-5e2e1481-7e6c-4b16-bce3-55b9d4390497 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.325880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be7c9589-7f7d-4bde-a770-b71ebe4a0ceb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} PATCH /v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4aa3c30e-ed48-4216-82b3-76630758fe02 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} PATCH /v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8abb4d79-0757-42ea-b0a8-a0e6017715b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "s elf"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} PATCH /v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a4cd72e-de3f-4a4b-94bb-4e9b9704f7ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ 930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4aca66df-6afd-4130-bc83-1e4e904857b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} PATCH /v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69f4dad3-7510-4464-b762-a5a1a59e18de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} PATCH /v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82163a0a-63ad-445f-aabd-51a827da1b24 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "self"}, {"href" : "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} PATCH /v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cb4f747-25c6-4254-bc06-2bb796afc869 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "930e063d-89ad-4be3-8d24-882f9de9a828", "created_at": "2025-05-30T17:31:57.477933+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/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "self"}, {"href": "http://localhost/nodes/930e063d-89ad-4be3-8d24-882f9de9a828/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.032532s] ... 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-c1b2b680-4e53-4cf3-b02b-283cb85eb2a5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestPatch.test_update_byaddress_not_allowed [0.031345s] ... 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\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url [0.080615s] ... 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-c32954af-b100-40cf-81d2-8f4f389d93b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.048852s] ... 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-e74c87b0-20c1-401c-9b24-943d10fe2104 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"supported_boot_devices": ["pxe"]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.059414s] ... 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-3944f19e-7acc-4b11-9240-e798bc66ddd8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.795624+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_node.TestPatch.test_update_interface_fields_bad_version [0.082080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-afe428c1-2d93-4f79-bedd-891490ee87f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-90b0030f-fecb-488e-8d40-5f135ec71657 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c5f03e34-f0bf-4fb9-bf27-4f50017819ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5c5c2f05-3e15-41ab-9be1-67b01fd3bcfb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7d39efa9-d355-4e6f-9ef7-aa935b1b2c17 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3b232270-bda3-4bc1-9c65-d2bc2955e462 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5eef3bf4-5ae4-4033-8c89-f5c2b7a3c440 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/23521cea-483e-4eef-ab77-109b2594cf6a WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-52992b57-8377-4c0b-8a0a-6bb61cfa3c73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_update_byid_invalid_api_version [0.036057s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.072353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7151213-e812-425b-9c05-d29fb4eea4ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_provision_with_deploy_deploy_steps [0.094721s] ... 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-7daf5945-7f25-4ae7-9e1b-f3fdb3fa4d6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestPatch.test_update_byname [0.048548s] ... 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-a6e59e36-caf2-4542-92b3-f5e1c77f1851 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:57.899945+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_node.TestPatch.test_update_lessee [0.083965s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04553ef3-c0da-45e8-8fe4-4f67ce051bf7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd", "created_at": "2025-05-30T17:31:57.880529+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/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd", "rel": "self"}, {"href": "http://localhost/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/ports", "rel": "self"}, {"href": "http://localhost/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/states", "rel": "self"}, {"href": "http://localhost/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/volume", "rel": "self"}, {"href": "http://localhost/nodes/837ca5b9-ef5d-4963-b8b2-7afb3f2bf7dd/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.067052s] ... 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-f10fdf1b-0044-4cca-97e5-69a563c601d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.049626s] ... 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-f124dc6c-7b4e-4d61-8038-1cf1c93b59ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:57.950153+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_node.TestPatch.test_update_lessee_old_api [0.047050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a2f5012b-afb4-46a0-8f46-f213976aca6e WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4b6d2d5d-861a-4eb9-9310-2bfdb11ff541 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.075506s] ... 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-da45826a-697e-49aa-88f0-4b493b88c263 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.059974s] ... 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-4433801e-cc1b-4081-a0ba-1a2456f168a5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:57.994427+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_node.TestListNodes.test_get_supported_indicators [0.078621s] ... 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-9a198eae-6bff-4022-b0c1-36c2f82a1e22 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.084992s] ... 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-0e13c2d7-136d-4be7-a9b7-69fc16c2891a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.048253s] ... 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-81c0355a-4fc6-4263-be7d-a4403c3dc0b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data [0.106825s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d 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-b3a66c3f-6d5c-4f13-a53d-57ca0167736c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "2a95787e-f65c-4891-ad87-9c27e1be366d", "created_at": "2025-05-30T17:31:58.020136+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/2a95787e-f65c-4891-ad87-9c27e1be366d", "rel": "self"}, {"href": "http://localhost/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2a95787e-f65c-4891-ad87 -9c27e1be366d/states", "rel": "self"}, {"href": "http://localhost/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2a95787e-f65c-4891-ad87-9c27e1be366d/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported [0.066192s] ... 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-370e6ade-3015-4f8b-a213-2ce435beba4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.039454s] ... 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-32055584-752d-4211-baa8-3a66a1001bf3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom [0.063324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3638158e-47eb-4204-bdc8-47dedbf2c3c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "6e002984-8cd4-4cda-a19a-a91a1ab2149c", "created_at": "2025-05-30T17:31:58.125260+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/6e002984-8cd4-4cda-a19a-a91a1ab2149c", "rel": "self"}, {"href": "http://localhost/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/ports", "rel": "self"}, {"href": "http://localhost/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/states", "rel": "self"}, {"href": "http://localhost/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/volume", "rel": "self"}, {"href": "http://localhost/nodes/6e002984-8cd4-4cda-a19a-a91a1ab2149c/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.035777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/d86c8a4a-421e-4e5e-b157-b23ac6b44bc3 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-41fb6aed-e14b-4fbe-a217-24259cf15ce6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup d86c8a4a-421e-4e5e-b157-b23ac6b44bc3 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.097928s] ... 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-03f0818a-0c00-4110-a45e-48f79386d0ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.076933s] ... 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-de2878ea-14f2-492c-b849-0f241b2e4c69 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api [0.047013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f3b94440-8bc8-4b9d-b217-7875155827ce 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-266aa130-14fd-4a9e-b454-297232dc4f27 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.044638s] ... 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-9156c88c-bd32-4ca6-9edc-5ccd53420944 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:58.179330+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_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.040553s] ... 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-faa87cd6-2e69-436c-a6bd-2858c8775bb5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.050033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/76152ef7-73d4-4917-9f24-f4d94aff3984 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c39c763a-825a-41b5-ac24-29bc32858c66 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_get_traits_fields [0.069517s] ... 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-43069b22-1876-40ef-b6ef-0b8fe81b16cf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.098227s] ... 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-cc2e66b9-128a-42a8-a30c-b1ad4c8fb647 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestPatch.test_update_portgroup_mode_properties [0.050968s] ... 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-d9447b47-0ce4-4807-bcc7-02e72d0e8deb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:58.273676+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_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.075082s] ... 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-92007b03-3890-44bb-940f-699fe0cdb224 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestPatch.test_update_network_interface [0.089959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/07ef188c-622d-4c36-8216-1afc4815e438 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c3b5edd-d318-4194-9f1b-7784d1f7d8bb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "07ef188c-622d-4c36-8216-1afc4815e438", "created_at": "2025-05-30T17:31:58.292084+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/07ef188c-622d-4c36-8216-1afc4815e438", "rel": "self"}, {"href": "http://localhost/nodes/07ef188c-622d-4c36-8216-1afc4815e438", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/07ef188c-622d-4c36-8216-1afc4815e438/ports", "rel": "self"}, {"href": "http://localhost/nodes/07ef188c-622d-4c36-8216-1afc4815e438/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/07ef188c-622d-4c36-8216-1afc4815e438/states", "rel": "self"}, {"href": "http://localhost/nodes/07ef188c-622d-4c36-8216-1afc4815e438/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/07ef188c-622d-4c36-8216-1afc4815e438/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/07ef188c-622d-4c36-8216-1afc4815e438/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/07ef188c-622d-4c36-8216-1afc4815e438/volume", "rel": "self"}, {"href": "http://localhost/nodes/07ef188c-622d-4c36-8216-1afc4815e438/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.050127s] ... 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-c832a2ed-501c-4ede-a4d2-b73275ca381c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-9c2729c6-07d3-4981-8947-c6061a9937ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.088884s] ... 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-600162d6-6aa6-42bf-a097-be0dae8e8c86 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.042846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3af91954-c37d-41f1-82fa-af47c5adb51a WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-692052c1-59be-45bf-a882-92cf4e7373d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.048735s] ... 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-4e82d987-c112-4d34-91c5-fb0c51b6dd3d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:31:58.372321+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.074480s] ... 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-08bf0dac-47fd-4833-ab20-821c28163192 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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": "ca85d133-62dd-4bfd-8926-6245539613c5"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.037610s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.087444s] ... 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-c3a117f7-7000-45e3-8c1b-387a801cb3e8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_bmc_address_as_none [0.030288s] ... 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-f322de98-ac1b-46a1-96b3-d97af604104a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fd412c98-3607-49e6-895f-7272876ffaca"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.092923s] ... 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-5aa7327c-90e9-47eb-b64f-b6b96b5f98ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.409359+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_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.083733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e450fe83-8f8b-47ae-87a5-ef27ba4b0bd9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.451590+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-a66f8eb9-8e4f-43d3-8063-429ad0768855 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.451590+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_inspector_compatibility [0.033863s] ... 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-252e822b-afbd-4dc6-b174-99a8c1f9f66a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1080f21a-7c45-448f-a8d4-a3c4c2c2bafb"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.076057s] ... 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-f6e86f8b-4404-438e-9ee6-2f0814e3ce04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_invalid_schema [0.043570s] ... 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-603233ce-627d-4d7c-9abc-c68ee927b803 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.096841s] ... 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-114f3a4b-b879-4e38-95f4-6cbbdb1db348 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.508290+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_ramdisk.TestContinueInspection.test_new_api [0.038715s] ... 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-d9b363c1-695a-4cd9-9e45-d31516a00c8d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "0ab644e0-2373-44d2-bfb9-52aeef9f316f", "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/0ab644e0-2373-44d2-bfb9-52aeef9f316f", "rel": "self"}, {"href": "http://localhost/nodes/0ab644e0-2373-44d2-bfb9-52aeef9f316f", "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"]}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.094988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6e19083-577d-462b-af08-19bf7d3d0852 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.555206+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-bf6b60c7-cf5b-409d-9199-c52031fce6ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.555206+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.036617s] ... 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-a53ad8c4-9d43-45a0-b2ac-84f74482aeda X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy [0.109821s] ... 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-85a15503-2421-4be1-8612-01f6af76ea85 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_old_api_version [0.029940s] ... 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-886c4d19-d5b7-4094-9b28-4f24270494cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_root.TestCheckVersions.test_check_version_invalid_major_version [0.017833s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.094156s] ... 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-2521303b-8d3f-4371-9cce-bf96bd8d2b83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.606631+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.087491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78d51179-0c83-4b2e-aebf-ac1d70315b89 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.635405+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-c756f984-c154-4172-a191-b77fa95614da X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.635405+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.016794s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.015839s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.016416s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_unprovision_after_service_failed [0.087288s] ... 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-7b6917cd-aa61-4110-a13f-3eeb278dba2a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.095116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-210b8fa1-2655-4e52-be0e-e44eee26b6d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.728011+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-911c1bed-8ae6-462d-876c-fcfd917d892a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.728011+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.117702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/033338ae-f91c-4d9a-9101-baf1a3665567 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-028004d3-d310-4ce6-902f-f8e702e8ab8f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "033338ae-f91c-4d9a-9101-baf1a3665567", "created_at": "2025-05-30T17:31:58.734228+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/033338ae-f91c-4d9a-9101-baf1a3665567", "rel": "self"}, {"href": "http://localhost/nodes/033338ae-f91c-4d9a-9101-baf1a3665567", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/ports", "rel": "self"}, {"href": "http://localhost/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/states", "rel": "self"}, {"href": "http://localhost/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/volume", "rel": "self"}, {"href": "http://localhost/nodes/033338ae-f91c-4d9a-9101-baf1a3665567/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.078231s] ... 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-901dde40-f1e2-414e-b89a-cdb5f9617c67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.076822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3a018d7-9e5f-417c-ba94-648f26faeeba X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.809058+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-2128be78-d38f-42e6-bd5c-f3188ceb9c92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.809058+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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.077932s] ... 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-d79a58a6-4cce-4e8e-aa32-431695e65d18 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.114157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee964bd0-a427-422c-b7df-6682fc08694a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54", "created_at": "2025-05-30T17:31:58.839747+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/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54", "rel": "self"}, {"href": "http://localhost/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/ports", "rel": "self"}, {"href": "http://localhost/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/states", "rel": "self"}, {"href": "http://localhost/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/volume", "rel": "self"}, {"href": "http://localhost/nodes/458ef2f1-3f2f-4fce-8b33-d4a4f6a6cf54/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name [0.193159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-3595e788-6567-4614-a1fd-857b7e9264a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.047190s] ... 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-e30018a2-13d9-43fe-82e2-31ed6fbabc85 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name_non_existent [0.026466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1c619740-be46-40c7-bc89-d9166515470e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook blah could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.088177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3bff7ba5-5d44-4850-ab56-7015f64ebab5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.897095+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-9b76ca63-aac9-45e3-ba7d-804d9e173f5b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.897095+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.TestPut.test_put_raid_older_version [0.035923s] ... 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-19c64e87-f35f-4089-8af0-8d07d9ab8eeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.054852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/86341150-2d2c-4b60-a5fc-15dac2d5fa99 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b389dc0f-c49e-4258-b9d4-64f8c245bbc9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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 \\\"86341150-2d2c-4b60-a5fc-15dac2d5fa99\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_uuid [0.031039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/9e58ca08-23a6-4b50-a25c-af32dec13def GOT Response: 204 No Content Openstack-Request-Id: req-5b5b644e-835a-43ed-b2ac-aacc3470ae77 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_invalid_api_version [0.033900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/4dd8d5fa-263e-4f90-b88f-fbc61bc44353 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\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.045915s] ... 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-6a771019-83fd-44f9-811b-0682a1108560 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_runbook.TestDelete.test_delete_old_api_version [0.026992s] ... 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.072638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4fc7e80e-a1c8-4e68-88c5-80ee01865cbe WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-db12240e-677e-4a26-9192-69530e19f815 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.099029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd0f6dde-d896-45e0-ade3-7f5c7be977a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.997985+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-e029ff2e-a75f-413c-8885-b90b221682d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:58.997985+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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.020056s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.045334s] ... 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-e396af4b-b75a-45f9-a50f-d047c5d689ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.025968s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo [0.034158s] ... 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-39cf9ed0-1eeb-48ea-a395-e7fd105564a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.017402s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.016492s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr [0.032544s] ... 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-b88f5c24-3d4e-45b9-bb89-657a917ca835 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.089798s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73f094cb-a8d6-4f91-aae0-35249458530d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "eb494bc0-33ee-4438-9dfa-2005d9fd0055", "created_at": "2025-05-30T17:31:59.070733+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/eb494bc0-33ee-4438-9dfa-2005d9fd0055", "rel": "self"}, {"href": "http://localhost/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/ports", "rel": "self"}, {"href": "http://localhost/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/states", "rel": "self"}, {"href": "http://localhost/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/volume", "rel": "self"}, {"href": "http://localhost/nodes/eb494bc0-33ee-4438-9dfa-2005d9fd0055/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.024500s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.097939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e92d432a-58ff-4511-80b7-4e90cc58df8c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.101068+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-b31757b3-cf34-4bf4-8080-6beddf5bfebf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.101068+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.TestPut.test_secure_boot_off_older_soft_ver [0.034889s] ... 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-cd4c3547-3db6-44e1-8c8d-4ef11a897706 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.019940s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.018989s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.062068s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3377a38f-8eb6-4358-ae9a-966cf2bc8949 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e1c31704-8068-429a-8bee-0d63f54ee809 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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 \\\"3377a38f-8eb6-4358-ae9a-966cf2bc8949\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.039843s] ... 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-baf48e1c-24a5-4cf5-b98f-0c7b32c16c31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.028209s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.017762s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.017331s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.100486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3346bccb-ad8f-4020-bc59-39cec799a9c6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.200805+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-a44bc1b3-aefe-4aa7-8701-31cef674ac1b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.200805+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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.055851s] ... 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-d6941714-dbb7-4c46-a55b-47caa78df816 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.016047s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid [0.016860s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.086697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5aad62e-676f-405d-bf17-b1ea78e5b29c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4", "created_at": "2025-05-30T17:31:59.224887+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/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4", "rel": "self"}, {"href": "http://localhost/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/ports", "rel": "self"}, {"href": "http://localhost/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/states", "rel": "self"}, {"href": "http://localhost/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/volume", "rel": "self"}, {"href": "http://localhost/nodes/61b6e2f9-ac41-40f2-b5aa-92a29f2d45e4/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two [0.033565s] ... 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-58813021-830f-4148-a3bb-8ee1bab23a7c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.021738s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.017881s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.046967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/97e35f12-f85f-463f-9c5c-d0288d02e9e6 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4c6fa66d-b690-4e9a-a8e8-224eed54198d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.053558s] ... 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-aed55237-59b9-42e7-a868-672b8a6cb7e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.028575s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.017797s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields [0.015887s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.037530s] ... 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-76fe0bcb-8005-499b-8d4b-c9759be9166b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links [0.016600s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.016038s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.160396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3af62c3c-eb9e-436a-b410-cc3af79c4637 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.319341+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-26c01ee8-692b-4802-99fc-9c1f7852d719 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.319341+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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.034723s] ... 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-1fae7e01-4590-4507-8bbc-a37980c5b7e6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.096812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcfa1c66-4355-4077-abb6-77e3ef855ce6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "c0e74f04-47aa-4b32-9b01-d80ad01dac6e", "created_at": "2025-05-30T17:31:59.367710+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/c0e74f04-47aa-4b32-9b01-d80ad01dac6e", "rel": "self"}, {"href": "http://localhost/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/ports", "rel": "self"}, {"href": "http://localhost/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/states", "rel": "self"}, {"href": "http://localhost/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/volume", "rel": "self"}, {"href": "http://localhost/nodes/c0e74f04-47aa-4b32-9b01-d80ad01dac6e/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.027411s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.039459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-b3eca184-2682-4b85-8b91-583c54da64c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.080898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/99c56123-a989-4582-ba08-c5aac8911450 WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72b2f2ea-c28c-487d-aad2-d632e10e43cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "99c56123-a989-4582-ba08-c5aac8911450", "created_at": "2025-05-30T17:31:59.453683+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/99c56123-a989-4582-ba08-c5aac8911450", "rel": "self"}, {"href": "http://localhost/nodes/99c56123-a989-4582-ba08-c5aac8911450", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99c56123-a989-4582-ba08-c5aac8911450/ports", "rel": "self"}, {"href": "http://localhost/nodes/99c56123-a989-4582-ba08-c5aac8911450/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/99c56123-a989-4582-ba08-c5aac8911450/states", "rel": "self"}, {"href": "http://localhost/nodes/99c56123-a989-4582-ba08-c5aac8911450/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/99c56123-a989-4582-ba08-c5aac8911450/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/99c56123-a989-4582-ba08-c5aac8911450/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/99c56123-a989-4582-ba08-c5aac8911450/volume", "rel": "self"}, {"href": "http://localhost/nodes/99c56123-a989-4582-ba08-c5aac8911450/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.027907s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.120106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa652fc9-f17d-4236-aa94-5d38877a8812 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.485523+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-4c6f5c22-876d-419a-a6e4-478d2022af81 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:31:59.485523+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.044315s] ... 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-058acdaf-2fe2-44a5-998a-5c3271c335a0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_node.TestPatch.test_update_protected_string [0.094430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60 WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-722b815a-fc5e-4368-bc8c-3171c8935885 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60", "created_at": "2025-05-30T17:31:59.539019+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/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60", "rel": "self"}, {"href": "http://localhost/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/ports", "rel": "self"}, {"href": "http://localhost/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/states", "rel": "self"}, {"href": "http://localhost/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/volume", "rel": "self"}, {"href": "http://localhost/nodes/78dc8fc8-5c4e-4c9a-b2e8-c6d18a89dd60/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.050111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-44d07027-d7db-4eb4-8be6-ec4ecba0e437 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.095035s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/019e7915-c547-4879-a565-d912898820a4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ee626f4-e718-4675-bdba-9a8f688fb600 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "019e7915-c547-4879-a565-d912898820a4", "created_at": "2025-05-30T17:31:59.580651+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/019e7915-c547-4879-a565-d912898820a4", "rel": "self"}, {"href": "http://localhost/nodes/019e7915-c547-4879-a565-d912898820a4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/019e7915-c547-4879-a565-d912898820a4/ports", "rel": "self"}, {"href": "http://localhost/nodes/019e7915-c547-4879-a565-d912898820a4/ports", "rel": "bookmark"}]} GET /v1/nodes/019e7915-c547-4879-a565-d912898820a4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-910fbd9c-1e83-42c6-aa45-e6ebcc324d30 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "019e7915-c547-4879-a565-d912898820a4", "created_at": "2025-05-30T17:31:59.580651+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/019e7915-c547-4879-a565-d912898820a4", "rel": "self"}, {"href": "http://localhost/nodes/019e7915-c547-4879-a565-d912898820a4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/019e7915-c547-4879-a565-d912898820a4/ports", "rel": "self"}, {"href": "http://localhost/nodes/019e7915-c547-4879-a565-d912898820a4/ports", "rel": "bookmark"}]} GET /nodes/019e7915-c547-4879-a565-d912898820a4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-907dafe5-0e53-4f1b-b405-eedeea095b0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "019e7915-c547-4879-a565-d912898820a4", "created_at": "2025-05-30T17:31:59.580651+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/019e7915-c547-4879-a565-d912898820a4", "rel": "self"}, {"href": "http://localhost/nodes/019e7915-c547-4879-a565-d912898820a4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/019e7915-c547-4879-a565-d912898820a4/ports", "rel": "self"}, {"href": "http://localhost/nodes/019e7915-c547-4879-a565-d912898820a4/ports", "rel ": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.075300s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-f3276c1b-2588-4d72-93e1-c587705621fa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service [0.278432s] ... 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-29568b7b-9c9d-420a-8af2-ce28e8660f0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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) {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.106469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c86092ae-8e09-415a-948e-7d290c48af37 WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b3d62f53-b47b-400b-8656-66ef666ffb63 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.060165s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.044667s] ... 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-61367543-4abc-4a54-aea9-a22ebcba2648 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.controllers.v1.test_node.TestListNodes.test_links_public_url [0.141757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d64921cd-8ba3-40bc-87a8-dccfcfac27c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4e9ef9d7-246d-4840-89d3-72a258d96f4d", "created_at": "2025-05-30T17:31:59.692580+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/4e9ef9d7-246d-4840-89d3-72a258d96f4d", "rel": "self"}, {"href": "http://foo/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d/ports", "rel": "self"}, {"href": "http://foo/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d/ports", "rel": "bookmark"}]} GET /v1/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3a3be7d-a8ae-4f8c-9fbb-a89fa9218b67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4e9ef9d7-246d-4840-89d3-72a258d96f4d", "created_at": "2025-05-30T17:31:59.692580+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/4e9ef9d7-246d-4840-89d3-72a258d96f4d", "rel": "self"}, {"href": "http://foo/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d/ports", "rel": "self"}, {"href": "http://foo/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d/ports", "rel": "bookmark"}]} GET /nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f292f92-cc57-434b-8c96-544978c5d25c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4e9ef9d7-246d-4840-89d3-72a258d96f4d", "created_at": "2025-05-30T17:31:59.692580+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/4e9ef9d7-246d-4840-89d3-72a258d96f4d", "rel": "self"}, {"href": "http://foo/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d/ports", "rel": "self"}, {"href": "http://foo/nodes/4e9ef9d7-246d-4840-89d3-72a258d96f4d/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.117274s] ... 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-59614bc2-497c-4760-8989-57407e8fca93 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.041631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a293b45b-ed22-4ead-a5b1-719f7e7a7a50 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_audit.TestAuditMiddleware.test_disable_audit_request [0.024241s] ... ok {1} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.024557s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.103481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f833d8b-197d-4b6c-8185-441bb3866dbe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "84f82648-8416-46a5-8c44-5d2a9eb80a21", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/84f82648-8416-46a5-8c44-5d2a9eb80a21", "rel": "self"}, {"href": "http://localhost/nodes/84f82648-8416-46a5-8c44-5d2a9eb80a21", "rel": "bookmark"}]}, {"uuid": "932f4eef-1a15-43db-992c-84adeda433f3", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/932f4eef-1a15-43db-992c-84adeda433f3", "rel": "self"}, {"href": "http://localhost/nodes/932f4eef-1a15-43db-992c-84adeda433f3", "rel": "bookmark"}]}]} GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e90e226-d325-4257-8a66-db227efc8242 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "ddc79779-4c93-4ad5-acc8-329f055dd0d7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ddc79779-4c93-4ad5-acc8-329f055dd0d7", "rel": "self"}, {"href": "http://localhost/nodes/ddc79779-4c93-4ad5-acc8-329f055dd0d7", "rel": "bookmark"}]}, {"uuid": "a855ef17-a5cd-4100-b1f7-08b04c659360", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a855ef17-a5cd-4100-b1f7-08b04c659360", "rel": "self"}, {"href": "http://localhost/nodes/a855ef17-a5cd-4100-b1f7-08b04c659360", "rel": "bookmark"}]}, {"uuid": "dee97782-ae00-437e-a11c-60d3ae205cca", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dee97782-ae00-437e-a11c-60d3ae205cca", "rel": "self"}, {"href": "http://localhost/nodes/dee97782-ae00-437e-a11c-60d3ae205cca", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.027326s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks [0.115582s] ... 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-8c42b2dd-0177-41f7-b1c4-a5a03b3cb736 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 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.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.039683s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.077052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-890fa8a0-5637-4488-8ec0-1087dd7c8d9e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "79a00f13-1da6-471b-bb2c-c6d7d7c19b39", "instance_uuid": "e5bbc597-d562-4faa-8d5d-1324ea4f31ef", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/79a00f13-1da6-471b-bb2c-c6d7d7c19b39", "rel": "self"}, {"href": "http://localhost/nodes/79a00f13-1da6-471b-bb2c-c6d7d7c19b39", "rel": "bookmark"}]}, {"uuid": "154a3a12-ee70-484e-bff1-aed896835fe5", "instance_uuid": "53749faf-7da3-493a-ab3e-0c74630864c1", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/154a3a12-ee70-484e-bff1-aed896835fe5", "rel": "self"}, {"href": "http://localhost/nodes/154a3a12-ee70-484e-bff1-aed896835fe5", "rel": "bookmark"}]}, {"uuid": "3fdaa892-df78-4d0a-b01b-a39121beb3ef", "instance_uuid": "42d21c57-5ba5-4cb4-a9b2-106d21ccd7a9", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3fdaa892-df78-4d0a-b01b-a39121beb3ef", "rel": "self"}, {"href": "http://localhost/nodes/3fdaa892-df78-4d0a-b01b-a39121beb3ef", "rel": "bookmark"}]}, {"uuid": "5b7ad422-2049-4300-91b6-9ebf36d9abd4", "instance_uuid": "7ffd0e6d-2b84-4098-9000-bdfb96ac6bfe", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5b7ad422-2049-4300-91b6-9ebf36d9abd4", "rel": "self"}, {"href": "http://localhost/nodes/5b7ad422-2049-4300-91b6-9ebf36d9abd4", "rel": "bookmark"}]}]} GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72536d93-1abb-4760-af20-c22bad5dabc4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "7152fe77-078f-4ee6-b898-0e994f470d87", "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-7a68c2df-f374-40bf-a091-8f803d7ba868 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "7152fe77-078f-4ee6-b898-0e994f470d87", "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.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.049733s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.283402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469 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-d2b88b69-b9ae-4403-a397-931249675a79 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "e52cbf6e-8b11-4120-bc63-c155283c7469", "created_at": "2025-05-30T17:31:59.920175+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/e52cbf6e-8b11-4120-bc63-c155283c7469", "rel": "self"}, {"href": "http://localhost/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/ports", "rel": "self"}, {"href": "http://localhost/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/states", "rel": "self"}, {"href": "http://localhost/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/volume", "rel": "self"}, {"href": "http://localhost/nodes/e52cbf6e-8b11-4120-bc63-c155283c7469/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.032979s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca4654cb-c356-4cd0-b2ba-8d99736d619e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.023876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1d784ca-5e1d-4adf-989c-2fc1b79312c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks_unapproved [0.106187s] ... 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-a947c8e0-3241-4f97-bd16-77dd6b5bd756 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_root.TestRoot.test_no_html_errors [0.021211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/foo 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_node.TestListNodes.test_many [0.045472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-229fbc40-1ef3-4030-998f-534a35c6a3e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "5e5794f8-aa53-48b3-b366-fd720dce7b1b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5e5794f8-aa53-48b3-b366-fd720dce7b1b", "rel": "self"}, {"href": "http://localhost/nodes/5e5794f8-aa53-48b3-b366-fd720dce7b1b", "rel": "bookmark"}]}, {"uuid": "ca7ce50b-95bf-4f2f-b86c-e84e63e56234", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ca7ce50b-95bf-4f2f-b86c-e84e63e56234", "rel": "self"}, {"href": "http://localhost/nodes/ca7ce50b-95bf-4f2f-b86c-e84e63e56234", "rel": "bookmark"}]}, {"uuid": "c3284852-bf8d-4f3a-af0a-1765800bb603", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c3284852-bf8d-4f3a-af0a-1765800bb603", "rel": "self"}, {"href": "http://localhost/nodes/c3284852-bf8d-4f3a-af0a-1765800bb603", "rel": "bookmark"}]}, {"uuid": "19767784-8b65-4f68-b326-a8ce57f16d51", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/19767784-8b65-4f68-b326-a8ce57f16d51", "rel": "self"}, {"href": "http://localhost/nodes/19767784-8b65-4f68-b326-a8ce57f16d51", "rel": "bookmark"}]}, {"uuid": "9cd06557-9165-4a04-939f-06c18d58497e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9cd06557-9165-4a04-939f-06c18d58497e", "rel": "self"}, {"href": "http://localhost/nodes/9cd06557-9165-4a04-939f-06c18d58497e", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.024031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-2177d5f9-84dd-454c-bf59-2f1a0b380f2d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden [0.034519s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b95f0012-a042-493a-9513-642ef8809d82 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_args.ValidateSchemaTest.test_schema [0.022671s] ... ok {1} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args [0.018221s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.044062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d423a86c-cba8-4df5-977d-524da2f9eea1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"nodes": [{"uuid": "ffd478a7-9c54-4ff1-a9cb-b65f937de3d4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/ffd478a7-9c54-4ff1-a9cb-b65f937de3d4", "rel": "self"}, {"href": "http://localhost/nodes/ffd478a7-9c54-4ff1-a9cb-b65f937de3d4", "rel": "bookmark"}]}, {"uuid": "a29d475b-c684-4006-b240-7dda878184f9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/a29d475b-c684-4006-b240-7dda878184f9", "rel": "self"}, {"href": "http://localhost/nodes/a29d475b-c684-4006-b240-7dda878184f9", "rel": "bookmark"}]}, {"uuid": "612e3980-3e8e-4919-99d3-8c8af4921fd5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/612e3980-3e8e-4919-99d3-8c8af4921fd5", "rel": "self"}, {"href": "http://localhost/nodes/612e3980-3e8e-4919-99d3-8c8af4921fd5", "rel": "bookmark"}]}, {"uuid": "cf6e9e11-1883-438d-ac21-77f4de343762", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/cf6e9e11-1883-438d-ac21-77f4de343762", "rel": "self"}, {"href": "http://localhost/nodes/cf6e9e11-1883-438d-ac21-77f4de343762", "rel": "bookmark"}]}, {"uuid": "273d0eac-8e34-4e83-8bc7-f94eaa8803cd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/273d0eac-8e34-4e83-8bc7-f94eaa8803cd", "rel": "self"}, {"href": "http://localhost/nodes/273d0eac-8e34-4e83-8bc7-f94eaa8803cd", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs [0.021926s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.141286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b2f85bf4-74cd-4a4e-8b73-00063fb4a414 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5f98d13-3898-473f-b9c7-6a60a0ce453b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "b2f85bf4-74cd-4a4e-8b73-00063fb4a414", "created_at": "2025-05-30T17:32:00.089783+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/b2f85bf4-74cd-4a4e-8b73-00063fb4a414", "rel": "self"}, {"href": "http://localhost/nodes/b2f85bf4-74cd-4a4e-8b73-00063fb4a414", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b2f85bf4-74cd-4a4e-8b73-00063fb4a414/ports", "rel": "self"}, {"href": "http://localhost/nodes/b2f85bf4-74cd-4a4e-8b73-00063fb4a414/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b2f85bf4-74cd-4a4e-8b73-00063fb4a414/states", "rel": "self"}, {"href": "http://localhost/nodes/b2f85bf4-74cd-4a4e-8b73-00063fb4a414/states", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed [0.021411s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.111464s] ... 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-5d2dd1fe-001f-4477-b40a-a35674012696 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_empty_response [0.017138s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.040973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-383155b9-adae-42e2-aa0c-b9cf089ca636 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline [0.018110s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline_no_file [0.023903s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.071542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content Openstack-Request-Id: req-be98a6c2-5aa9-4a5a-9b48-8be174fe27e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_nomatch_line [0.019838s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden [0.057511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55d42e2a-0962-4b57-b4bf-20e0f9f534c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "359e9ba0-3b83-4174-8c79-4d170d5e2de6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/359e9ba0-3b83-4174-8c79-4d170d5e2de6", "rel": "self"}, {"href": "http://localhost/nodes/359e9ba0-3b83-4174-8c79-4d170d5e2de6", "rel": "bookmark"}]}, {"uuid": "98f7795c-5271-496b-a204-b767acdf171a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/98f7795c-5271-496b-a204-b767acdf171a", "rel": "self"}, {"href": "http://localhost/nodes/98f7795c-5271-496b-a204-b767acdf171a", "rel": "bookmark"}]}, {"uuid": "cbf7184f-9a49-4ffb-9389-020761324f65", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cbf7184f-9a49-4ffb-9389-020761324f65", "rel": "self"}, {"href": "http://localhost/nodes/cbf7184f-9a49-4ffb-9389-020761324f65", "rel": "bookmark"}]}, {"uuid": "9b35297b-568f-4ac6-bc6d-39d1169439b5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/9b35297b-568f-4ac6-bc6d-39d1169439b5", "rel": "self"}, {"href": "http://localhost/nodes/9b35297b-568f-4ac6-bc6d-39d1169439b5", "rel": "bookmark"}]}, {"uuid": "8fd9ed70-db16-49fa-b831-3b57e908e63a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/8fd9ed70-db16-49fa-b831-3b57e908e63a", "rel": "self"}, {"href": "http://localhost/nodes/8fd9ed70-db16-49fa-b831-3b57e908e63a", "rel": "bookmark"}]}, {"uuid": "0dd0126b-23f8-407f-9f84-b8c8cc3ba5fe", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0dd0126b-23f8-407f-9f84-b8c8cc3ba5fe", "rel": "self"}, {"href": "http://localhost/nodes/0dd0126b-23f8-407f-9f84-b8c8cc3ba5fe", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.101018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/89b9518a-a4f3-40c5-9779-5ffe20fa32d1 WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43d57640-5aaa-429b-a02b-4f52f2b2dea7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "89b9518a-a4f3-40c5-9779-5ffe20fa32d1", "created_at": "2025-05-30T17:32:00.179658+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/89b9518a-a4f3-40c5-9779-5ffe20fa32d1", "rel": "self"}, {"href": "http://localhost/nodes/89b9518a-a4f3-40c5-9779-5ffe20fa32d1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/89b9518a-a4f3-40c5-9779-5ffe20fa32d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/89b9518a-a4f3-40c5-9779-5ffe20fa32d1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/89b9518a-a4f3-40c5-9779-5ffe20fa32d1/states", "rel": "self"}, {"href": "http://localhost/nodes/89b9518a-a4f3-40c5-9779-5ffe20fa32d1/states", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_one_line [0.018509s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.035639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e11526b9-d31b-4bb0-a00f-8505f1e4391e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.046402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/dc12157c-654a-4cdf-9e5a-41840cfa3287 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4e324446-612f-4979-aa4a-f0f8745df597 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.051366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestPut.test_set_boot_device_not_supported [0.083888s] ... 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-d4983274-da79-494c-9935-d0f88aec9ec3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_mask_available_state [0.063412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfcebc3b-4b4e-42be-8c37-c1a3bab4ad0c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.307746+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-67d22ed9-2cac-4e7b-90d7-9a66372185f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.307746+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"}]} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [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( {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.089823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/5747b2d0-34d6-4379-bbb1-8328b512e4cf WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b81f1672-ff00-45d7-ad6c-afac237267ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.072267s] ... 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-99372724-bd1e-4e19-b55d-a3cb632dd78a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.054276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2dd8bac-ecde-42f4-bbf9-0790c6eee319 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "d70e9efd-4135-470b-aa59-b2018203192d", "instance_uuid": "ad5a9e52-812b-43d1-9743-998ece45bfe9", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d70e9efd-4135-470b-aa59-b2018203192d", "rel": "self"}, {"href": "http://localhost/nodes/d70e9efd-4135-470b-aa59-b2018203192d", "rel": "bookmark"}]}, {"uuid": "98031403-548b-4dd5-9010-217233d7c00c", "instance_uuid": "be6d2699-a153-4841-aebd-118a0486b483", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/98031403-548b-4dd5-9010-217233d7c00c", "rel": "self"}, {"href": "http://localhost/nodes/98031403-548b-4dd5-9010-217233d7c00c", "rel": "bookmark"}]}, {"uuid": "2d03e27d-39f8-476e-8658-5bbc2796dfa0", "instance_uuid": "6fb130e5-2ebc-4f23-adc2-462deaeb0a75", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2d03e27d-39f8-476e-8658-5bbc2796dfa0", "rel": "self"}, {"href": "http://localhost/nodes/2d03e27d-39f8-476e-8658-5bbc2796dfa0", "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=2d03e27d-39f8-476e-8658-5bbc2796dfa0"} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.049341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cinder.TestCinderActions.test_attach_volumes_conn_init_failure [0.042240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.058468s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ade7bdcb-d3a9-4979-bda4-1961d110d53b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "b8f1c956-0791-452c-b870-93b834570e4b", "created_at": "2025-05-30T17:32:00.417901+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": "2ec390ac-44b5-4dd2-b6d9-a53e8ae9c642", "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/b8f1c956-0791-452c-b870-93b834570e4b", "rel": "self"}, {"href": "http://localhost/nodes/b8f1c956-0791-452c-b870-93b834570e4b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b8f1c956-0791-452c-b870-93b834570e4b/ports", "rel": "self"}, {"href": "http://localhost/nodes/b8f1c956-0791-452c-b870-93b834570e4b/ports", "rel": "bookmark"}]}, {"uuid": "492a976a-9800-4a5d-94f0-7ac1e9e7fa9b", "created_at": "2025-05-30T17:32:00.419321+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": "cc6c406b-df29-4ebd-90a0-633f94f2020e", "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/492a976a-9800-4a5d-94f0-7ac1e9e7fa9b", "rel": "self"}, {"href": "http://localhost/nodes/492a976a-9800-4a5d-94f0-7ac1e9e7fa9b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/492a976a-9800-4a5d-94f0-7ac1e9e7fa9b/ports", "rel": "self"}, {"href": "http://localhost/nodes/492a976a-9800-4a5d-94f0-7ac1e9e7fa9b/ports", "rel": "bookmark"}]}, {"uuid": "85a5bb5c-0241-4696-8efb-7b3695c9aa7a", "created_at": "2025-05-30T17:32:00.420697+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": "7b7e4ec2-ddb3-407b-9527-af39331b806f", "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/85a5bb5c-0241-4696-8efb-7b3695c9aa7a", "rel": "self"}, {"href": "http://localhost/nodes/85a5bb5c-0241-4696-8efb-7b3695c9aa7a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/85a5bb5c-0241-4696-8efb-7b3695c9aa7a/ports", "rel": "self"}, {"href": "http://localhost/nodes/85a5bb5c-0241-4696-8efb-7b3695c9aa7a/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=85a5bb5c-0241-4696-8efb-7b3695c9aa7a"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.081746s] ... 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-67b96b7c-7f50-4fd8-b2af-132159e659d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.039191s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d6c07a0-0884-47de-889d-f0bcba84ff5c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.468227+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_node.TestPatch.test_update_retired [0.106500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/28fc008b-339d-4263-815f-49350823abf2 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3803fea-4906-4b55-bb8f-8048071c1a17 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "28fc008b-339d-4263-815f-49350823abf2", "created_at": "2025-05-30T17:32:00.425084+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/28fc008b-339d-4263-815f-49350823abf2", "rel": "self"}, {"href": "http://localhost/nodes/28fc008b-339d-4263-815f-49350823abf2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/28fc008b-339d-4263-815f-49350823abf2/ports", "rel": "self"}, {"href": "http://localhost/nodes/28fc008b-339d-4263-815f-49350823abf2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/28fc008b-339d-4263-815f-49350823abf2/states", "rel": "self"}, {"href": "http://localhost/nodes/28fc008b-339d-4263-815f-49350823abf2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/28fc008b-339d-4263-815f-49350823abf2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/28fc008b-339d-4263-815f-49350823abf2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/28fc008b-339d-4263-815f-49350823abf2/volume", "rel": "self"}, {"href": "http://localhost/nodes/28fc008b-339d-4263-815f-49350823abf2/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.042517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/eb1bccbe-500c-4443-8cae-cc10e70bb1a1 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-371ed313-6bf4-49de-bc2f-825c1c59f01f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.051536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70df0510-b5f5-4f6b-9399-d019fbdf2e5f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.512261+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-c0392a5a-85fe-4fba-a9d6-5b3efd3f4149 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.512261+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.095593s] ... 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-fd873c95-629d-41c1-847c-e5e53716183e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.063806s] ... 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-bafa2c51-02d2-4efc-8d6c-1ccb4049e96a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.122163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9 WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74c9881e-3545-4dc0-8554-09a780c7baa4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "ea34c05e-957b-4df0-b325-9cf4e3962eb9", "created_at": "2025-05-30T17:32:00.571896+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/ea34c05e-957b-4df0-b325-9cf4e3962eb9", "rel": "self"}, {"href": "http://localhost/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/ports", "rel": "self"}, {"href": "http://localhost/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/states", "rel": "self"}, {"href": "http://localhost/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/volume", "rel": "self"}, {"href": "http://localhost/nodes/ea34c05e-957b-4df0-b325-9cf4e3962eb9/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.241277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestPut.test_set_console_mode_bad_request [0.078695s] ... 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-97f08ff6-5132-4464-8cd7-3a11d7232e66 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.041421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.040218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestPut.test_set_console_mode_bad_request_missing_parameter [0.063671s] ... 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-a5c855a1-dc61-4344-b1e7-b5ce74a0cd99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.232989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0e9f149-6a76-45fb-ae8e-9446a53393eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.567035+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove [0.120332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2081b9c-b61a-4120-b039-71f3f10da2cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "135024dc-6db7-4aaf-a083-703ab42d9f0f", "created_at": "2025-05-30T17:32:00.710822+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/135024dc-6db7-4aaf-a083-703ab42d9f0f", "rel": "self"}, {"href": "http://localhost/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/states", "rel": "self"}, {"href": "http://localhost/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/135024dc-6db7-4aaf-a083-703ab42d9f0f/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.045384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.038565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9f42db6-779e-4399-b91e-3112e0cb192b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.792695+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.069505s] ... 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-664af005-5969-4d42-8226-5162d8936903 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.045700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.046121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-184b075c-9517-49df-88d2-d4d59ea6a7b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.831757+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-2541c4db-ffb1-46d7-9410-aae3a2a4353f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.831757+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"}]} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.047489s] ... ok 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_node.TestPatch.test_update_retired_with_reason [0.123359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b 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-08e5514b-b158-470a-973d-1b32c3137287 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b", "created_at": "2025-05-30T17:32:00.832887+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/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b", "rel": "self"}, {"href": "http://localhost/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/ports", "rel": "self"}, {"href": "http://localhost/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/states", "rel": "self"}, {"href": "http://localhost/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/volume", "rel": "self"}, {"href": "http://localhost/nodes/f56ca767-ab49-4b2c-8e1d-bfc57b8fab7b/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.076083s] ... 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-760c0073-2817-4c6e-b572-cad2585fc474 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.069534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/2231e9de-7849-4ce7-9978-658acb49cbef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e64a20b-0b3f-4c21-b7af-f2267354475b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "2231e9de-7849-4ce7-9978-658acb49cbef", "created_at": "2025-05-30T17:32:00.887897+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/2231e9de-7849-4ce7-9978-658acb49cbef", "rel": "self"}, {"href": "http://localhost/nodes/2231e9de-7849-4ce7-9978-658acb49cbef", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/ports", "rel": "self"}, {"href": "http://localhost/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/states", "rel": "self"}, {"href": "http://localhost/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/volume", "rel": "self"}, {"href": "http://localhost/nodes/2231e9de-7849-4ce7-9978-658acb49cbef/volume", "rel": "bookmark"}]} GET /v1/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10bebfb6-4ec0-46c5-9444-e6d3e5d58127 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "5226f58d-7754-463c-a38f-5bfb6bd8015d", "created_at": "2025-05-30T17:32:00.908983+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/5226f58d-7754-463c-a38f-5bfb6bd8015d", "rel": "self"}, {"href": "http://localhost/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/ports", "rel": "self"}, {"href": "http://localhost/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/states", "rel": "self"}, {"href": "http://localhost/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/volume", "rel": "self"}, {"href": "http://localhost/nodes/5226f58d-7754-463c-a38f-5bfb6bd8015d/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_conn_init_failure_bad_request [0.047824s] ... ok 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_node.TestPatch.test_update_state [0.051889s] ... 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-2a6fcb96-3738-4fec-b4b3-0dbc6677eca9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.050651s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e09d4d4-7232-446c-8f26-56a5349b504a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.948208+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-d12b6f74-bafb-4637-a70c-ff02752dcf61 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:00.948208+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.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.049732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestPut.test_set_console_mode_enabled [0.083689s] ... 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-0ed36932-a860-4cbc-ad71-cf5fd8c2fc2c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field [0.046838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62e315d5-85c5-4d4b-9506-c7cb27a92360 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.001626+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.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.047582s] ... ok 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_node.TestPatch.test_update_storage_interface [0.103348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a97f7b7-4c9a-4093-89fa-c781dbae5811 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "3bb38f7c-89e9-44ce-893f-ce254349554c", "created_at": "2025-05-30T17:32:00.991912+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/3bb38f7c-89e9-44ce-893f-ce254349554c", "rel": "self"}, {"href": "http://localhost/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/ports", "rel": "self"}, {"href": "http://localhost/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/states", "rel": "self"}, {"href": "http://localhost/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/volume", "rel": "self"}, {"href": "http://localhost/nodes/3bb38f7c-89e9-44ce-893f-ce254349554c/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.036586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=73dbdbe1-513f-4b65-971d-b5489e6f4dd9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a17fc03d-c7c1-4803-92ab-6fb010d9551c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"nodes": [{"uuid": "24b6e7a5-c9ed-45dd-8ee7-13df35e1d70a", "instance_uuid": "73dbdbe1-513f-4b65-971d-b5489e6f4dd9", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/24b6e7a5-c9ed-45dd-8ee7-13df35e1d70a", "rel": "self"}, {"href": "http://localhost/nodes/24b6e7a5-c9ed-45dd-8ee7-13df35e1d70a", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.087858s] ... 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-b8b2a5db-1d10-479c-8b2b-d77e9e28f019 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.030620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-954fa896-708d-431b-a2ec-ddc669fd58ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.059854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.035897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=7a6d616c-12fb-404a-9db3-0cfecffc2fb3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68d6d48a-f7f8-4c36-9401-de9bd8a430ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.082297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/49718342-36c8-4fe8-a741-9657aab130fe WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d9345182-26f2-4a3a-b113-7c5bf5c3e061 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.040212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestPut.test_set_indicator_state_invalid_value [0.077435s] ... 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-f225d22c-8783-4749-bc17-fb0acf3fbd33 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.044510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d13fff30-164e-430b-ab75-373caf499fbf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.149753+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-0c8d8983-bf08-48a4-a7b2-a8f92f450167 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.149753+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"}]} {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.040636s] ... ok 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_node.TestPatch.test_update_traits [0.046988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/19433198-59c2-4704-9f89-dec291d661f7 WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b9d96b2a-117e-4fc5-84da-cdce5b752d2d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.037941s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.051361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2539b0a-eac9-4df7-8238-3b4145ea24ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.203637+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-bd27deab-4e93-49f0-8a80-2ca09c8bc6cb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.203637+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"}]} {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.018909s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ [0.016446s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.103144s] ... 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-2023c6e4-f051-42bc-9218-56e4748a168d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.015521s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.088985s] ... 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-31f7b675-31b6-4576-b77e-35b6e2e6dbdb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.209388+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.058706s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62cf1647-cdae-4b1c-a16c-47cd5caa8c82 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.246566+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-3636c109-3b83-42cc-ac02-e7b2e1655a0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.246566+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.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.019378s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.036219s] ... 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-eeac6722-6f77-42b7-b73a-4fbfcc865bde X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.018620s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.042853s] ... 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-84e5edbb-2588-4209-abad-4f461a2df1b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.030372s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.042073s] ... 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-6e48fc90-6bfc-4fa7-a841-fd448b92847d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.065702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ff04763-57a1-4448-8e6b-ef23045986d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.330000+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"}]} {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.021018s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.041752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-73c48726-b5a9-4e45-816c-92a8d86977ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPut.test_set_node_maintenance_mode [0.042332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-ead5910a-be43-4701-bc5f-dfc2f02b8961 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.026214s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.026364s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.051294s] ... 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-a25005a3-d5d0-4437-aef9-c51c1eae736b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_node_disable_power_off_false_field [0.071365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18d1b561-4e67-49e8-bdf5-89747b2e7721 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.397229+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.TestPut.test_set_node_maintenance_mode_by_name [0.048983s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-86790f0b-d3cb-4fb3-ad78-c8c5a52826ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.027574s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.021915s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.057241s] ... 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-8995647f-64b7-484a-8601-3ac3ab185be9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.039992s] ... 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-44c8de9f-1b7e-4cd8-9e39-6539412d2379 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.023848s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_hidden_in_lower_version [0.090467s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6805656-a339-4257-ab85-32ae3f548f33 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.473350+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-8e826af1-e94e-4cd9-9f8a-57162fcb98fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.473350+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"}]} {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.022228s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.040740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-bdd0f889-b138-4fa9-b9da-5c060fe13b1d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.048323s] ... 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\": \"\"}"} {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.029538s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.040885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-8bc2d7f6-ccd0-43d7-8399-712a84e4cd1b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.042833s] ... 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-8a040ce9-c9d0-454e-9403-4ae8d6b58575 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.029421s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.023878s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_null_field [0.089601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f010a7bd-8ddc-4b6c-be7c-eea55e8dc9ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.578801+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.TestTraits.test_add_single_trait_rejects_too_long_trait [0.044113s] ... 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-5bf5eeab-b8f3-45a7-9b78-8453ff1a4d45 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.058138s] ... 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-9fac33d1-ab56-43ef-a151-020a1dcd8c99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.026746s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.024607s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.046401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-ea7d05bd-b680-43ad-9471-e31c6bf0db8f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.050274s] ... 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-466180cb-c00f-4762-8222-692239be5387 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.025664s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_true_field [0.080916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e166860d-da12-4927-adb0-f7dd6b3b55c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.654248+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.033943s] ... 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-c559bccb-9c88-4653-8ed9-53d6248d854b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.029231s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.023361s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.060060s] ... 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-4873e7ea-d0c7-4c21-940a-a3b355d186ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.047304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-ac1d8088-05ea-4941-a724-2406c7db9a6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.023862s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.039458s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content Openstack-Request-Id: req-2c8f7bf5-1dc3-444e-bab1-c6f5143db26b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.099074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a963836b-61d2-470f-beb1-899a3fc3dae0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.732678+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-a4c78beb-c2d5-49a4-9e5f-2fd30ec4f3be X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.732678+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"}]} {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.038541s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.021176s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.039372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8fda0e48-1bfe-4023-a91a-058c1e0ef701 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg [0.022120s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.096065s] ... 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-86016b8f-61f3-4bb2-8179-2c2236a0ec8b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise [0.018676s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.037193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-006fe6e6-73fd-411d-a36a-9f2d530d8456 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable [0.017515s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.091234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea4641d6-f8b0-4969-91f6-8890f3eae4aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.825840+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-0f07e109-fd70-4694-a41d-08df969b6a1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.825840+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"}]} {1} ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable [0.018360s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000098s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.038821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6f4b40b0-a290-4367-b49f-1a5caa827865 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.039228s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.102959s] ... 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-4b12c7e5-3492-47ce-ba37-87c6e9085bf6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.048421s] ... 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-ea23045b-453f-44b4-8ae0-59d66f4d3888 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.084081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c41490c-6932-460c-aa19-664efbe26da6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:01.930541+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"}]} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.061969s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.058555s] ... 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-a8840f2c-8a96-49df-b12c-b85d021c79ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.055474s] ... 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-0ca52fec-9eef-4c83-a0d5-4bce4dbd95fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"traits": ["CUSTOM_1", "CUSTOM_2"]} {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.017997s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.040167s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.020561s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.035746s] ... 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-02c7129b-f4c9-4918-8926-003a062b3393 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_node_lessee_hidden_in_lower_version [0.087830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b258c96-f8ba-430f-b0f0-53eecccfca38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.017995+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-809eb0e5-53cd-49b7-907f-75d9021aca28 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.017995+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"}]} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.033263s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.026416s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.034452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d390a9cb-bc92-4dcd-b9fc-d144642cf576 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.032163s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.054465s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.041013s] ... 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-9eaa8fa4-08e5-4c41-8a4b-c83055af1857 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.032837s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.083614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-700605e8-7096-490b-98c6-3b8fa3ce2cbf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.120001+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"}]} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.024205s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.046532s] ... 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-a7bdef88-3827-483f-a242-12d52b5af1a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.033740s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.049265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-f30d8afd-ffd7-446c-9d1d-2d986b07f3b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present [0.081882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4539380-dfda-42ca-83e1-82cf2bca4576 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.194907+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"}]} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.051346s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.043226s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content Openstack-Request-Id: req-d2c65fea-48a3-43d5-a50d-524e1e42d24e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.031555s] ... 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\": \"\"}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.057226s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.034458s] ... 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-952aee3a-82f3-4e01-ab04-cfd829a04b23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.041985s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data [0.134821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/45137767-a668-4e62-902c-70e4cb28ccae WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f625cf2-3f15-4d84-8981-1f8a3879fe48 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "45137767-a668-4e62-902c-70e4cb28ccae", "created_at": "2025-05-30T17:32:02.310780+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/45137767-a668-4e62-902c-70e4cb28ccae", "rel": "self"}, {"href": "http://localhost/nodes/45137767-a668-4e62-902c-70e4cb28ccae", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/45137767-a668-4e62-902c-70e4cb28ccae/ports", "rel": "self"}, {"href": "http://localhost/nodes/45137767-a668-4e62-902c-70e4cb28ccae/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45137767-a668-4e62-902c-70e4cb28ccae/states", "rel": "self"}, {"href ": "http://localhost/nodes/45137767-a668-4e62-902c-70e4cb28ccae/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45137767-a668-4e62-902c-70e4cb28ccae/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45137767-a668-4e62-902c-70e4cb28ccae/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45137767-a668-4e62-902c-70e4cb28ccae/volume", "rel": "self"}, {"href": "http://localhost/nodes/45137767-a668-4e62-902c-70e4cb28ccae/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.252434s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.044295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-570d5ac6-51e7-4a83-a04a-07f34d999080 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.044500s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.035438s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.036472s] ... 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-7d326356-eb2d-4748-8d7d-473ff109ff7d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.032738s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false [0.023211s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.034310s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.019088s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version [0.096971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60c09f33-0173-4efc-9885-b93f2dfa98f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.426793+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-8e85a7ca-dc87-4a56-8c9b-4e1abb2bf43f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.426793+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_node.TestTraits.test_set_all_traits_with_chassis [0.060087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-37f26676-f39b-4903-91c5-1e31fb5f6c38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.036028s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.023551s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.019584s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.025705s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.070729s] ... 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-db9f8c59-e223-4a15-bc2b-a61e3878ee93 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.501864+00:00", "updated_at": "2025-05-30T17:32:02.537848+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} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.024340s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.092030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d197383a-c186-405a-a4e3-6377f974db17 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.510317+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-f93fa841-2ede-4f6d-89f0-7c65a6a9a0a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.510317+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.083342s] ... 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-a8f2adff-61f6-41a9-9726-3ba8b689c6b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.018686s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.047315s] ... 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-34c95fe0-ded1-4dc3-9325-0060f80897e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.018646s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_handles_exceptions [0.019682s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success [0.017442s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.074332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-524ee865-494f-484e-a024-34343bdcfd52 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.611607+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.083018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-a5d1375c-57e9-45c1-9fba-6019aa6c0e78 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success_verify_false [0.021450s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.073093s] ... 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-cafa22d5-4c94-45bc-9cbb-b6e81e1ea2f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.615163+00:00", "updated_at": "2025-05-30T17:32:02.659462+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.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.033076s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.037589s] ... 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-9aef8452-6d5e-413e-96d5-791db1504f80 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.072511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-691993ac-87a2-4996-a3c1-3dd321e818f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.684784+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.084152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-25754897-9b9e-4fbc-abce-4b07a70a4f79 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.051358s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.069141s] ... 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-a7e54ab3-b708-40a7-93df-5f8d1a96c43b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.729427+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.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled [0.035872s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.067375s] ... 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-b5efde5a-8c54-4304-aaf5-a14785ba474a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.795771+00:00", "updated_at": "2025-05-30T17:32:02.831173+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} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.123367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13b46389-e0d7-4ecc-af2c-a6f64ae7dae2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "4341e25e-7e69-4270-80dc-de8dc917cd36", "created_at": "2025-05-30T17:32:02.767414+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/4341e25e-7e69-4270-80dc-de8dc917cd36", "rel": "self"}, {"href": "http://localhost/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/ports", "rel": "self"}, {"href": "http://localhost/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/states", "rel": "self"}, {"href": "http://localhost/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/volume", "rel": "self"}, {"href": "http://localhost/nodes/4341e25e-7e69-4270-80dc-de8dc917cd36/volume", "rel": "bookmark"}]} GET /v1/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e888b44-5bfc-479b-b9d3-308df154a66c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "4aeb2288-d5eb-4d1e-b58a-f0d20194e16c", "created_at": "2025-05-30T17:32:02.804234+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/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c", "rel": "self"}, {"href": "http://localhost/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/ports", "rel": "self"}, {"href": "http://localhost/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/states", "rel": "self"}, {"href": "http://localhost/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/volume", "rel": "self"}, {"href": "http://localhost/nodes/4aeb2288-d5eb-4d1e-b58a-f0d20194e16c/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.132653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/3a384056-a5ac-4b7c-95fc-a486f4cfac94 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-87f2c6b9-6ac4-4cfb-8350-a52dd4c0670e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestPatch.test_add_physical_network_old_api_version [0.050441s] ... 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-5a1e4573-1cf0-4155-8111-54bfc2a541ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.040482s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.090362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8633a73e-4cda-451f-a84e-517462b26542 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.892059+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-601bdec7-9ae7-44af-9df5-957294f57fd4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.892059+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection_conductor_groups [0.037661s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.089884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-beb40aee-035d-41db-acfe-cdcac3239a46 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.984439+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-008eafaa-c76b-4b79-ba59-497efb0653f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:02.984439+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.154914s] ... 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-102eca2f-5b37-4150-baae-35ffd18f19f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-20d595b9-e413-4d86-af70-ef7b1266caaf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.069467s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1037c7dc-014c-4ace-93f7-3bab37355eeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.072007+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.244042s] ... 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-7867dc67-b617-453b-8f92-cb0571b12a1c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired [0.075735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-466584fe-3d7f-477a-ac00-bf9e5748c96e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "3da91e45-49e2-4b66-a131-5edb0f9af65a", "created_at": "2025-05-30T17:32:03.136938+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/3da91e45-49e2-4b66-a131-5edb0f9af65a", "rel": "self"}, {"href": "http://localhost/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/ports", "rel": "self"}, {"href": "http://localhost/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/states", "rel": "self"}, {"href": "http://localhost/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/volume", "rel": "self"}, {"href": "http://localhost/nodes/3da91e45-49e2-4b66-a131-5edb0f9af65a/volume", "rel": "bookmark"}]} GET /v1/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89451413-a41c-417b-a19e-3bea340f1782 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "637f5cd2-9542-4121-9f40-d494b7f57dc6", "created_at": "2025-05-30T17:32:03.167524+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/637f5cd2-9542-4121-9f40-d494b7f57dc6", "rel": "self"}, {"href": "http://localhost/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/ports", "rel": "self"}, {"href": "http://localhost/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/states", "rel": "self"}, {"href": "http://localhost/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/volume", "rel": "self"}, {"href": "http://localhost/nodes/637f5cd2-9542-4121-9f40-d494b7f57dc6/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.433502s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.125693s] ... 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-8fecc42d-e747-415b-8969-b7442c4275c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.020434s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.101893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'ea202d89-f61d-41ec-8d4e-dff2a020086c', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6f28f13-60cf-4fde-b20c-5663edd53de3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.172407+00:00", "updated_at": "2025-05-30T17:32:03.216693+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": "ea202d89-f61d-41ec-8d4e-dff2a020086c"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.083474s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-579b7c01-ef81-4a0f-88a7-f192d0ab6c5e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.231622+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-2b7c646c-6b06-4f3c-9d84-358530dd8746 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.231622+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"}]} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.043171s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.025583s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.077815s] ... 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-759898e2-ee0c-451f-8878-7e6e88360b16 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.276380+00:00", "updated_at": "2025-05-30T17:32:03.311225+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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.019856s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.019443s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.037234s] ... 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-db2f0c26-fd80-40bf-a6e8-7e0038d76bdd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.087214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2cf5e450-8811-41c0-9dd2-0c765acab3cf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.318984+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-10e8331f-ef6b-4c46-965b-6b61d590c415 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.318984+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"}]} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.019358s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.152756s] ... 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-0061af7f-0af5-40ba-86e2-614102fe07d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:03.341755+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-0d9cbe62-bc45-4b8b-840e-a6ef377b9dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:03.341755+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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.018156s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.020109s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string [0.068848s] ... 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-c9a0c405-5ef1-444c-807a-8458130b16d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.064794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-296bd3e9-fa46-4f67-b97b-2db86b074bbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.398407+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"}]} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.031035s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.024324s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.047770s] ... 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-c3426a76-10c6-42e7-9ef8-27f0fe91d14d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.019643s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.018249s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.018132s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.048779s] ... 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-80afea2b-6509-469f-b381-84eccb80f3df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot [0.098825s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2de336a8-0bcf-4d09-bb59-883b02cb0932 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "f875c3a9-e11c-47e7-b483-6637a5eb241c", "created_at": "2025-05-30T17:32:03.484215+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/f875c3a9-e11c-47e7-b483-6637a5eb241c", "rel": "self"}, {"href": "http://localhost/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/ports", "rel": "self"}, {"href": "http://localhost/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/states", "rel": "self"}, {"href": "http://localhost/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/volume", "rel": "self"}, {"href": "http://localhost/nodes/f875c3a9-e11c-47e7-b483-6637a5eb241c/volume", "rel": "bookmark"}]} GET /v1/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94784534-0de2-450c-8274-88bb04e9fce4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317", "created_at": "2025-05-30T17:32:03.505123+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/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317", "rel": "self"}, {"href": "http://localhost/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/states", "rel": "self"}, {"href": "http://localhost/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b4a6ddb-1a50-45fd-96d4-2dd00ffe7317/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.023563s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.157502s] ... 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-0485c5be-37e1-4a27-a34a-c968ed0ce800 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:03.497547+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-a0ff5a3d-69f9-44c7-a0f3-077311f9df36 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:03.497547+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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.023914s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.045630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/a83fe21c-d4dd-4f86-930f-b450bee8a3f6 WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-44842fd1-15f6-40ba-852a-cffa622d8e38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.030473s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.026028s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.088313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef2f938f-5840-4167-bc92-1368096514d5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.575679+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-5628b095-df44-4ebe-aedc-d8cbde2845da X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.575679+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.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.019873s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type [0.078257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/3006ea7f-2384-4486-b284-9e0bd664d062 WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3776ebe3-b4ea-4d34-9552-cc34a73e6a6f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "3006ea7f-2384-4486-b284-9e0bd664d062", "created_at": "2025-05-30T17:32:03.594184+00:00", "updated_at": "2025-05-30T17:32:03.640037+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/3006ea7f-2384-4486-b284-9e0bd664d062", "rel": "self"}, {"href": "http://localhost/ports/3006ea7f-2384-4486-b284-9e0bd664d062", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.120022s] ... 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-18314e0d-4f67-4282-b21d-e39fd594fabe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.022792s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.040509s] ... 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-1a81a493-92be-49fc-812b-33cf61a8a09a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.065611s] ... 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-3ebda817-44ad-4240-a2f9-b18671959b62 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"} {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.029628s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.028816s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.019866s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.060633s] ... 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-cf238b40-a1d2-4536-a40f-36d945aa99ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListNodes.test_node_states_boot_mode [0.085066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d377f43c-39be-4e37-b086-519200328479/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4ccc6a5-e2e2-4f8d-ab7c-17c785404f57 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/556b1ebf-af19-4920-a19d-1ea610b1b555/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c72571fe-0be8-4c4a-8e25-9ec24bd4bebb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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} {1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_is_true_false_operators_edge_cases [0.051709s] ... ok 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_port.TestPatch.test_remove_mandatory_field [0.062216s] ... 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-a004bbea-8469-4a9e-9a03-2382557804fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.159117s] ... 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/ae8caa6b-f48a-488f-986b-049d53d5d921 Openstack-Request-Id: req-a4003fa3-01a1-4f87-8a0f-870ffe3a36e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ae8caa6b-f48a-488f-986b-049d53d5d921", "created_at": "2025-05-30T17:32:03.777907+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/ae8caa6b-f48a-488f-986b-049d53d5d921", "rel": "self"}, {"href": "http://localhost/ports/ae8caa6b-f48a-488f-986b-049d53d5d921", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/ae8caa6b-f48a-488f-986b-049d53d5d921 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-021d48e1-1627-43cf-a8b7-68dedf118646 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ae8caa6b-f48a-488f-986b-049d53d5d921", "created_at": "2025-05-30T17:32:03.777907+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/ae8caa6b-f48a-488f-986b-049d53d5d921", "rel": "self"}, {"href": "http://localhost/ports/ae8caa6b-f48a-488f-986b-049d53d5d921", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.068272s] ... 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-ac4d1e50-8fd3-44c5-a630-5d5a7492d323 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-1dd71b9a-66da-43d5-8d0d-f5208bf71e9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_inspection_rule.TestOperators.test_oneofoperator_edge_cases [0.073154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_invalid_addr_format [0.077556s] ... 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-07a19771-9cbc-4842-9aef-53de55f58521 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.056912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee7664ca-ca71-4c3e-85c5-ebff88a0085b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"} {1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_exceptions [0.057548s] ... ok 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_port.TestPatch.test_remove_multi [0.134073s] ... 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-01dc69f4-045f-4d38-a752-334df8163033 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.838880+00:00", "updated_at": "2025-05-30T17:32:03.877204+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-ea2a9ea1-3a05-4138-b694-49e9d4216ccd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.838880+00:00", "updated_at": "2025-05-30T17:32:03.940009+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"}]} {1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_with_loop [0.045307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_invalid_node_uuid_format [0.082184s] ... 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-2db2a726-23fc-4458-8973-46418e3119e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestPatch.test_remove_node_id [0.036978s] ... 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-fa086bbf-0675-4c26-85ec-0c0da00f4de2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.074449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e353740-a2d4-4ef4-b09e-bb8e3feb7e3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.966844+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-e97f3a50-ad54-4005-9957-6750c6cc197d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:03.966844+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"}]} {1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_rule_operators [0.051218s] ... ok 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_port.TestPatch.test_remove_non_existent_property_fail [0.053728s] ... 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-08522416-5043-4a58-84c7-ad9f8bac4771 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_inspection_rule.TestShallowMask.test_get_method_masked [0.042628s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.063752s] ... 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-44a2c379-fe99-46ea-a750-b00b4dde86d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}} {1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_masked [0.031560s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.117967s] ... 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-eac66c2b-bb0c-422c-b8c1-053c904e4e8c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.080699s] ... 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-ca421346-ec2a-4738-bcc2-b5a63bc1f329 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.063673+00:00", "updated_at": "2025-05-30T17:32:04.113737+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} {1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_not_masked [0.030728s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.082719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/86191994-8e94-459a-8bff-0b6be1745dbf/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9efea062-9417-44d2-b89e-ec86f1a068c2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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/0f1e65c7-10e9-4960-97b2-29107c82b029/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-580d387b-c967-414a-89bc-f9722be4f058 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.043865s] ... 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-b31b12f7-10ac-429b-baa4-731dbf5b70fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.070384s] ... 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-45e45198-11a3-4369-b5f0-fe637c0f8013 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_items_masked [0.049642s] ... ok {1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_list_masking [0.026731s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.043692s] ... 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-033a9a92-b55a-41ab-8648-959e23e08abc X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.071846s] ... 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-b9c38a32-e136-4891-a5f2-0a40853ec2a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-0408ba4b-02d9-44f0-b873-f68c8b58c1cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_inspection_rule.TestShallowMask.test_modifying_dict [0.032399s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.036939s] ... 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-2b6e6469-05d3-460b-b0e7-a137931e1d9a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.081121s] ... 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-095284a5-aacc-499f-a392-85a2c1a73af3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_nested_dict_masking [0.042080s] ... ok {1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_set_mask_enabled [0.029080s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.078769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d810f4ba-d798-4fe7-ac77-ffb7d3110c84 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.272834+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-198b7d10-1624-4064-b9bc-19e076a3629c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.272834+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.069375s] ... 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-ddf7508b-b19c-4279-820d-35f6acfe46d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_inspection_rule.TestShallowMask.test_values_masked [0.040925s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.129794s] ... 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-c6358a5c-315e-4dbb-9c92-39927e86d377 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:04.363033+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"} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.052717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.079771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5bd070e-83a9-4321-807f-e2316e0abe58 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.356807+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-5dde0b8c-7068-466b-8ea0-54c12adffd75 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.356807+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.120403s] ... 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-b9a4f45f-177d-4f71-9be1-0c729c865a22 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.352859+00:00", "updated_at": "2025-05-30T17:32:04.432978+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"}]} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.052534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.100732s] ... 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-372b90d3-09f2-4c0c-892e-57b37e5eb8d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.077624s] ... ok 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_port.TestPatch.test_replace_multi [0.122256s] ... 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-4c033025-8fdc-4402-97f3-0b256373b135 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.488133+00:00", "updated_at": "2025-05-30T17:32:04.555624+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"}]} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.048103s] ... ok 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_port.TestPatch.test_replace_node_id [0.044378s] ... 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-af4c7a18-4a8a-4e70-a618-bd15bbf90e97 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestPost.test_create_port_local_link_connection_missing_optional [0.146910s] ... 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-ba2ea4ef-12dc-491a-8157-0f0fba89c558 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:04.605157+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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.056672s] ... ok 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_port.TestPatch.test_replace_node_uuid [0.086935s] ... 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-4d9be90a-a745-4b7f-83db-b0eb1673a2dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.636420+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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json [0.064272s] ... ok 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_port.TestPatch.test_replace_non_existent_node_uuid [0.051368s] ... 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-f355725a-ea63-46a7-b422-fe98cf2ab207 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [0.045685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.124695s] ... 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-d61bcf03-8252-422e-8fe8-ea2757204c2d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.054093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.401257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b1ca1ba-8bf9-4f05-953b-92af6266ae7f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.092230s] ... 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-f0ef5239-1635-4ecc-a273-0bce7b5a8945 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.833950+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_port.TestPatch.test_replace_physical_network [0.115343s] ... 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-03c1b6f6-bffc-42a5-bea8-444f87a54fe1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:04.775719+00:00", "updated_at": "2025-05-30T17:32:04.856825+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} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.066870s] ... 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-69647af8-ee48-4dfb-8ab0-8f9b12a9e721 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.093535s] ... ok 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_port.TestPatch.test_replace_physical_network_old_api_version [0.050629s] ... 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-fd27aa69-f23a-431b-b5dc-bc92853a547e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_missing_address_fails [0.079423s] ... 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-9a40e809-590a-4dde-8992-600317a7b3fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.052926s] ... 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-77ce0222-ac48-4e3b-af0d-a8c52fa61502 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error [0.104899s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_no_mandatory_field_address [0.083250s] ... 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-7a034728-c170-4d94-8fe4-5e4eb92ae067 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.128891s] ... 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-11758ee0-275f-4554-af70-dee653fa62c6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"portgroups": [{"uuid": "bd32e1fe-ad0e-4174-8e37-f0be76d65a5a", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/bd32e1fe-ad0e-4174-8e37-f0be76d65a5a", "rel": "self"}, {"href": "http://localhost/portgroups/bd32e1fe-ad0e-4174-8e37-f0be76d65a5a", "rel": "bookmark"}]}, {"uuid": "d90dc8d9-350f-4b61-b8b3-5f650c64d438", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/d90dc8d9-350f-4b61-b8b3-5f650c64d438", "rel": "self"}, {"href": "http://localhost/portgroups/d90dc8d9-350f-4b61-b8b3-5f650c64d438", "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-e6db65a1-99b5-4b6d-8efa-e945b6d2ae31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"portgroups": [{"uuid": "bd32e1fe-ad0e-4174-8e37-f0be76d65a5a", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/bd32e1fe-ad0e-4174-8e37-f0be76d65a5a", "rel": "self"}, {"href": "http://localhost/portgroups/bd32e1fe-ad0e-4174-8e37-f0be76d65a5a", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=bd32e1fe-ad0e-4174-8e37-f0be76d65a5a"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.088972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'a77ce296-3fba-4c45-9a9a-51a08491da0c', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4bf3995-544a-4fd9-9333-bebf330c0264 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.005141+00:00", "updated_at": "2025-05-30T17:32:05.051464+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": "a77ce296-3fba-4c45-9a9a-51a08491da0c"} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.065063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.075931s] ... 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-ad09eaef-99ba-4a72-a839-be34395d0545 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.075562s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92178eff-718c-44ae-bdb9-9612b5c6ff61 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.066502+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.046906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'f86d6843-2575-4d18-bc76-86ddac2c6416', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-861d972a-6e42-4860-a02c-e5112be32886 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http [0.049776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.050675s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.062385s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb60ddf5-5fc8-4e17-a324-0d43a6a2bf46 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.137559+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.080406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '8f3aa887-04da-45c4-9319-ccb0bb0105d9', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4642a11c-886a-453c-82f8-3f5cfbad19c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.135024+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} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.115190s] ... 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-8cf8d340-c89d-41f3-aab1-3dab02915115 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.053785s] ... 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\": \"\"}"} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.063250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.052104s] ... ok 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_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.158274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'e6453337-1e3b-4fe4-9dc3-b1260a5f538d', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '5e0a46e8-e3a1-4a44-92e8-1f812d1ead3f', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-860060c7-8f6c-4fc8-99f2-fffe1ac7dd33 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.249061+00:00", "updated_at": "2025-05-30T17:32:05.347883+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": "5e0a46e8-e3a1-4a44-92e8-1f812d1ead3f"} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.070025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.182957s] ... 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-3c2e1e03-7a99-49f6-b01e-23c556099d5b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:05.378000+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} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.172018s] ... 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-bbf8379e-c0e5-4501-a439-c8bf489cba8a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "c93ea3be-39c8-464a-811d-108fc31e8d4e", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/c93ea3be-39c8-464a-811d-108fc31e8d4e", "rel": "self"}, {"href": "http://localhost/ports/c93ea3be-39c8-464a-811d-108fc31e8d4e", "rel": "bookmark"}]}, {"uuid": "f368f260-a5ad-466c-aa19-7a57dd6be14b", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/f368f260-a5ad-466c-aa19-7a57dd6be14b", "rel": "self"}, {"href": "http://localhost/ports/f368f260-a5ad-466c-aa19-7a57dd6be14b", "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-82d972b0-d304-470a-a6df-03604cc57b52 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "c93ea3be-39c8-464a-811d-108fc31e8d4e", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/c93ea3be-39c8-464a-811d-108fc31e8d4e", "rel": "self"}, {"href": "http://localhost/ports/c93ea3be-39c8-464a-811d-108fc31e8d4e", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=c93ea3be-39c8-464a-811d-108fc31e8d4e"} {1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.049159s] ... ok 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_port.TestPatch.test_replace_singular [0.070844s] ... 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-cd16aff0-5a54-4519-913f-423b889786bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.379228+00:00", "updated_at": "2025-05-30T17:32:05.421634+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.031294s] ... 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\"}"} {1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.063414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.090203s] ... 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-e565bad8-716b-4262-87f8-ffbf482d34ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:05.462659+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_port.TestPatch.test_set_pxe_enabled_false_old_api [0.060744s] ... 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-cbeb7102-36e9-4e68-816f-ea5afb958d35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.TestListNodes.test_ports_subresource_link [0.087421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79ad7a74-e108-4b66-95b3-c65b233ed7ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.484082+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.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.051384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.079239s] ... 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-fc1480b9-daee-482d-a5b9-0b7edb3c4ecc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:05.546566+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"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.055099s] ... 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-7c67b3c2-2541-4559-b501-be4038626719 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.118927s] ... 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-f0ae1b94-5999-41bd-8d66-6efd9cdb1bf0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.106043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPost.test_create_port_novif_pxe_noportgroup [0.081316s] ... 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-0b7beeea-9c5b-465c-b306-ec1b974dd58d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:05.628941+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} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.068498s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.090176s] ... 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-bd85b6d2-6da6-425e-b3a0-c4c41be7d489 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.080810s] ... 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-715b3683-d456-4535-8fd9-1db7173d06ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.092173s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.101448s] ... 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-018f3476-69d1-4f66-84cd-3463c33d560c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.062226s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.034828s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.078277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3729bfc-af01-4ccb-8c9a-995edfb4a84e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "2899027f-31c3-4e79-a5d2-cb6fa5099ec4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2899027f-31c3-4e79-a5d2-cb6fa5099ec4", "rel": "self"}, {"href": "http://localhost/nodes/2899027f-31c3-4e79-a5d2-cb6fa5099ec4", "rel": "bookmark"}]}, {"uuid": "343f359a-bd3f-4adb-991f-3c661289f6dd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/343f359a-bd3f-4adb-991f-3c661289f6dd", "rel": "self"}, {"href": "http://localhost/nodes/343f359a-bd3f-4adb-991f-3c661289f6dd", "rel": "bookmark"}]}, {"uuid": "b73e1c75-a9b1-4870-8588-fce85e97e7f8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/b73e1c75-a9b1-4870-8588-fce85e97e7f8", "rel": "self"}, {"href": "http://localhost/nodes/b73e1c75-a9b1-4870-8588-fce85e97e7f8", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.134703s] ... 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-d716dd61-c983-4639-8d25-9b6a4b0b25ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.765905+00:00", "updated_at": "2025-05-30T17:32:05.845720+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.151802s] ... 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-21d61cbe-71c1-464f-9013-b44290a62981 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:05.846891+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.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.062368s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.045349s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.099317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb5db9c0-09a3-4716-bc70-73228441cb50 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "c8f4180a-e318-4ffc-94a2-7def55d68f8d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c8f4180a-e318-4ffc-94a2-7def55d68f8d", "rel": "self"}, {"href": "http://localhost/nodes/c8f4180a-e318-4ffc-94a2-7def55d68f8d", "rel": "bookmark"}]}, {"uuid": "7776a7a0-9434-4876-9673-2f2b9b714937", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/7776a7a0-9434-4876-9673-2f2b9b714937", "rel": "self"}, {"href": "http://localhost/nodes/7776a7a0-9434-4876-9673-2f2b9b714937", "rel": "bookmark"}]}, {"uuid": "8c0aae26-bf62-4be7-945e-dd6f71c46f4d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/8c0aae26-bf62-4be7-945e-dd6f71c46f4d", "rel": "self"}, {"href": "http://localhost/nodes/8c0aae26-bf62-4be7-945e-dd6f71c46f4d", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.041782s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.137473s] ... 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-e34032e2-d2e5-4ec1-a6d6-380e5725464a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:05.997839+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.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.052337s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.083549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aa35c42f-6516-4e36-a1a1-a7d57359dd0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-815a993d-0b33-48fa-b1b9-700d12dc871f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-136cc314-bbb8-49b2-a310-c20d5d14a4f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-da5bd703-de08-4440-87b6-95b68cd3fcba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-5d207118-df9d-4625-a848-bfc677e3d056 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-483c2f54-6be8-4dbe-8fc0-e43467cc7d84 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-c427f194-20e0-4e7f-9b90-6fa33a231602 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-7a0e448e-321e-4050-a817-cb73ce261ecb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.181038s] ... 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-26f93f0d-5136-4b05-b857-83fe9486c395 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:05.924399+00:00", "updated_at": "2025-05-30T17:32:06.030261+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} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.067353s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.060998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fb9065b0-0f26-470f-a511-84281de38ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.027486s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.126949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '0e91ef4c-f8cc-47fc-b116-c38a1b46b3ba', '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-c0657aeb-b8d4-4b51-b567-f60c135c763e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 0e91ef4c-f8cc-47fc-b116-c38a1b46b3ba could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive [0.071599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d6366f6-b065-48ce-8662-0ca6903fd5d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "fd7a7263-1373-4dd8-ac23-a500992b00d9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fd7a7263-1373-4dd8-ac23-a500992b00d9", "rel": "self"}, {"href": "http://localhost/nodes/fd7a7263-1373-4dd8-ac23-a500992b00d9", "rel": "bookmark"}]}, {"uuid": "a66f6cf7-3860-49a2-9381-2ca5c5089f44", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a66f6cf7-3860-49a2-9381-2ca5c5089f44", "rel": "self"}, {"href": "http://localhost/nodes/a66f6cf7-3860-49a2-9381-2ca5c5089f44", "rel": "bookmark"}]}, {"uuid": "33fa0d0a-6734-43a3-a787-b6b42e139310", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/33fa0d0a-6734-43a3-a787-b6b42e139310", "rel": "self"}, {"href": "http://localhost/nodes/33fa0d0a-6734-43a3-a787-b6b42e139310", "rel": "bookmark"}]}]} GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed59c11d-35d8-4616-b085-421a8bf216ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "fd7a7263-1373-4dd8-ac23-a500992b00d9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fd7a7263-1373-4dd8-ac23-a500992b00d9", "rel": "self"}, {"href": "http://localhost/nodes/fd7a7263-1373-4dd8-ac23-a500992b00d9", "rel": "bookmark"}]}, {"uuid": "a66f6cf7-3860-49a2-9381-2ca5c5089f44", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a66f6cf7-3860-49a2-9381-2ca5c5089f44", "rel": "self"}, {"href": "http://localhost/nodes/a66f6cf7-3860-49a2-9381-2ca5c5089f44", "rel": "bookmark"}]}, {"uuid": "33fa0d0a-6734-43a3-a787-b6b42e139310", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/33fa0d0a-6734-43a3-a787-b6b42e139310", "rel": "self"}, {"href": "http://localhost/nodes/33fa0d0a-6734-43a3-a787-b6b42e139310", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.127836s] ... 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-a4ee0134-a0a4-46e0-b5c4-8acfcde183b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.050238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/7481bd8d-566d-45f5-9545-53eb1d82c346 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d439e4c7-ce22-416d-aa01-00793bc77df3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 7481bd8d-566d-45f5-9545-53eb1d82c346 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.119445s] ... 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-ab7d784c-9bd3-4953-8770-9b07818f36f0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.136051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a36dfab8-b988-42c5-b8ab-d7438654bc40 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "24e51a0f-4efd-4649-bbcb-2d560d263d65", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/24e51a0f-4efd-4649-bbcb-2d560d263d65", "rel": "self"}, {"href": "http://localhost/nodes/24e51a0f-4efd-4649-bbcb-2d560d263d65", "rel": "bookmark"}]}, {"uuid": "ea60afc8-af23-48bf-92bd-62e27db2a0a2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ea60afc8-af23-48bf-92bd-62e27db2a0a2", "rel": "self"}, {"href": "http://localhost/nodes/ea60afc8-af23-48bf-92bd-62e27db2a0a2", "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=ea60afc8-af23-48bf-92bd-62e27db2a0a2"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.076442s] ... 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-18c89ef6-d12e-425e-b7bf-7adee4c6c953 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:06.269559+00:00", "updated_at": "2025-05-30T17:32:06.304520+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_port.TestPost.test_create_port_portgroup_uuid_not_found [0.079688s] ... 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-917ca67e-3de8-4169-b9b7-9da096ae2d01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.033645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef8aa4fd-9d4b-44bf-8fbf-50a4147f3fce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.028893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bb7d6056-f9d1-4262-abdf-5053cf086e47 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestPatch.test_update_pxe_enabled_allowed [0.088729s] ... 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-ebca058c-d43a-4b4f-9d1c-9eb0ae380077 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:06.348838+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.039228s] ... 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-d8da8eca-7ba3-4490-9fd1-f167cc7c0b26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.083702s] ... 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-06cddb51-416f-4acc-b721-8968a044b651 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestPatch.test_update_pxe_enabled_old_api_version [0.039068s] ... 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-1e36258b-dd7c-4cd3-b9df-77895816d09a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.031562s] ... 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-75854f15-36c6-47af-aa24-8d8298dee8c7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_invalid_uuid_or_name [0.025986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1234~1234~1234 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6191e48f-ee1a-4b72-ba5d-7fb511aa5407 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.053316s] ... 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-d09c4565-bc20-481b-b818-e348e19a408b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status [0.048510s] ... 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-723629ea-d92c-4a53-829c-176d6e8df022 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.074989s] ... 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-91825ef3-c192-49ec-8ac4-efe229cf9925 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "a111d9b0-4107-4276-b6da-0e99c26a1b05", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a111d9b0-4107-4276-b6da-0e99c26a1b05", "rel": "self"}, {"href": "http://localhost/volume/connectors/a111d9b0-4107-4276-b6da-0e99c26a1b05", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "efdd1e43-4491-43b4-ab51-997310b7bb92", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/efdd1e43-4491-43b4-ab51-997310b7bb92", "rel": "self"}, {"href": "http://localhost/volume/connectors/efdd1e43-4491-43b4-ab51-997310b7bb92", "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-4a3e2a7b-e3ef-4c49-80e8-04cfe1172c84 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "a111d9b0-4107-4276-b6da-0e99c26a1b05", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a111d9b0-4107-4276-b6da-0e99c26a1b05", "rel": "self"}, {"href": "http://localhost/volume/connectors/a111d9b0-4107-4276-b6da-0e99c26a1b05", "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=a111d9b0-4107-4276-b6da-0e99c26a1b05"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.068038s] ... 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-5f5f11a1-3de2-487c-90f9-bffc6fb44f7a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.085369s] ... 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-8ad45d3e-31c3-4d13-9253-a51e4d20fa04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:06.537913+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-23dc3c07-a1b3-4795-b08f-d84c3cb45bb5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:06.537913+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"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.031084s] ... 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-d193536d-d5cb-4720-8e15-314ae91f1f90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_file_url [0.035802s] ... 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-a8aef7a0-761d-40db-970f-61b6a0da47ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.058677s] ... 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-26a5202f-b828-423b-9e68-b614b89ab7f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:06.611977+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} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.046896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/6d857a3e-f46b-4dcc-bcb0-0f220a85f906 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-69a85a84-d340-4720-9654-91505a9cfa57 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6d857a3e-f46b-4dcc-bcb0-0f220a85f906 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.062431s] ... 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\": \"\"}"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.555334s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.047322s] ... 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-991948b2-54d0-41c9-8024-ec7bf157b1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_ramdisk.TestHeartbeat.test_ok [0.049404s] ... 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-a394dbc7-b36f-4fec-ac16-f2ee6a9b1d5e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.030651s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.031646s] ... 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-245f297a-3b15-4ad7-abbf-ecb45d46ae95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.101545s] ... 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-4ea31c25-67d9-42a8-9a16-7af49acf03e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:06.701213+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_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.033696s] ... 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-a7836e69-d0cc-4a1b-b24a-4fc3767fa3d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.039349s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token [0.037591s] ... 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-095a847a-d140-4fa3-b15d-2fe14062804f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.042768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5d0dc36-57a9-465a-8725-423700c2ac96 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:06.749735+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"}]} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 [0.044077s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.043328s] ... 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-9b8c5d68-e19d-4a6b-9ede-79a1c6044cd8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.028986s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.068913s] ... 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-1ade0d9f-a0a0-464a-9c84-24ffa8b56187 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "cc9ac29d-f6bf-42f3-8e21-ff3c7201b129", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/cc9ac29d-f6bf-42f3-8e21-ff3c7201b129", "rel": "self"}, {"href": "http://localhost/volume/targets/cc9ac29d-f6bf-42f3-8e21-ff3c7201b129", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9fad4892-d63b-45f9-a726-d5014788b270", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9fad4892-d63b-45f9-a726-d5014788b270", "rel": "self"}, {"href": "http://localhost/volume/targets/9fad4892-d63b-45f9-a726-d5014788b270", "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-a98beb3b-62bc-472c-ae17-56a4dde995ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "cc9ac29d-f6bf-42f3-8e21-ff3c7201b129", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/cc9ac29d-f6bf-42f3-8e21-ff3c7201b129", "rel": "self"}, {"href": "http://localhost/volume/targets/cc9ac29d-f6bf-42f3-8e21-ff3c7201b129", "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=cc9ac29d-f6bf-42f3-8e21-ff3c7201b129"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.030825s] ... 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-b2c18a27-34f6-4f9d-824c-aeeb4e89d603 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.123055s] ... 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-5142364a-6644-4401-9482-55e97526fac3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:06.829552+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.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.030992s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.032613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-cdf22196-7e04-4c03-b866-d650e391d58e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.046449s] ... 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-a3c2560e-0ab2-44eb-8658-09cc219a4888 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.048453s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.033273s] ... 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\": \"\"}"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.038685s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.108613s] ... 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-e5255639-f60c-4fc6-8156-e779802074b5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.042506s] ... 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-a04b02b3-3ce8-4ec0-88f0-b8649b0de6b6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["8c5437a2-815b-46b3-a7a4-490d64db0007"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.025138s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.024030s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.043978s] ... 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-cf292777-5b1f-4d33-a738-1f36522587fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["ba6aedec-8d14-43a6-9662-bc56ff8c6300", "de9fd09f-13b7-427d-ab97-0bd58e30401a"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.030688s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.078326s] ... 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-ef439728-5e4a-47e4-8ad4-462b813347f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:07.022369+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.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config [0.022808s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.048019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2bdad0d-697d-4c3e-9407-a1cb515cb629 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]}]} {1} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_bad_file [0.027554s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_both_node_ident_and_node_uuid [0.044250s] ... 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-3e80e10e-bb81-4994-9f2e-85a0db655c83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_default [0.017771s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.053616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=38684c89-77fb-4062-a2e7-5894700801e5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-946c7589-b147-43aa-bba1-9a9afa87626c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {1} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_no_match [0.027817s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.037568s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_ignores_parent_if_include_children_indicated [0.058321s] ... 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-cb3edc2f-1ab2-4f55-ae14-aef63faba9c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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": "43ee42ba-f716-4529-9ca8-a059b5a9c5c2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/43ee42ba-f716-4529-9ca8-a059b5a9c5c2", "rel": "self"}, {"href": "http://localhost/nodes/43ee42ba-f716-4529-9ca8-a059b5a9c5c2", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_for_anaconda [0.301792s] ... 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-50a3211e-1cbc-42f4-a471-041d8924a4de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.031448s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.019578s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.043166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=9fc6c3ec-0807-4b64-a392-cd4e53b138e8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7e54c57-d279-474c-98f6-da5de1a35f55 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.017940s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.064329s] ... 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-c8d98e1e-8624-462e-8aaf-9781c37a5ba7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.018478s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.018368s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.074918s] ... 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-eff73b79-a8c2-4dc1-b8f1-3779d302348d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.058290s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.253386s] ... 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-65b64d7d-5ebb-4d1b-85ed-58036c715413 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.123223s] ... 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-3d2dc6a5-1301-4539-b4c4-fe9896555423 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "lessee": "e0dcd157-cb52-4257-b282-85c72f609159", "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"}]}]} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.023715s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.038359s] ... 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-ccc09f4b-2bbd-46f3-b5c4-c70f9a529a5e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.019362s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.039924s] ... 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-269816ff-3cc3-4f39-86c5-61645c6b7fa9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.038052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc824bfa-c5e4-434f-ba7e-0a858ea92070 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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": "19e56e57-2e08-4481-8957-adc7a7c87618", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/19e56e57-2e08-4481-8957-adc7a7c87618", "rel": "self"}, {"href": "http://localhost/nodes/19e56e57-2e08-4481-8957-adc7a7c87618", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.020317s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.031599s] ... 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-75905230-e9a5-4415-adc2-e82478f1278e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.042881s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.042613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/8c567bd8-8bb5-4a08-afda-8fc6b55c0bee WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3b39a95a-4f02-4b15-8ea0-6092fc48624e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.059158s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.135541s] ... 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-29598ce1-0839-40aa-92ad-f8248e73126c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:07.496682+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"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.076378s] ... 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-b1e2a3d1-f892-4b5c-9d3a-eec099a68aaf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.033827s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent [0.152442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/0b9b2952-972a-4a07-ab60-b9440f1255dd WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9dd7926-c5a8-4d63-adb4-04858a3ac832 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:07.432791+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.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.028646s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.036616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b2ca4f67-e844-4e53-8f40-0632f4b51fe9 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-ea3b329a-55c5-40e3-94d8-cd299bb95e31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestPost.test_create_port_with_is_smartnic_default_value [0.082649s] ... 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-25e0cd46-eed5-4541-a691-ed372f6d8e15 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:07.579587+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.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.044782s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.089473s] ... 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-39d65709-72a0-40f2-90a0-66aaba1f0fc3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_file_url [0.077357s] ... 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-4834f3e9-2034-4d75-9040-6a20fc537edc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.070713s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.126904s] ... 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-91b2cb89-0fbf-4b5f-bdd0-d20f03affbd4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.044267s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.060894s] ... 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-04df8993-e515-4f76-a142-839de50979f0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.098538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/6f8a4c63-7b46-4e69-b704-dcd2e906b814 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aa83e3ba-1fb5-4703-ba6f-6412643e2f44 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6f8a4c63-7b46-4e69-b704-dcd2e906b814 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.117418s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.098527s] ... 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-caa57925-ec28-4957-807e-b4a2c9c37715 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.112482s] ... 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-30d5410b-116c-478f-89b2-fd719a937fb7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.132574s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.075358s] ... 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-6d04fdbe-0536-4fa1-8738-a0239719ba05 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.070352s] ... 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-3ee13248-17bb-42db-bf0a-26fb991ee7d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.100279s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.186884s] ... 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-0e9b3af0-a1d3-4155-928d-9c040338fd6a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.524301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e0d4d23e-30cd-4c76-938e-ce1db29755ab WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-73475082-069f-4f46-8c73-2cbd0548ebcb X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.056858s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.119482s] ... 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-aa5c42d1-e8c6-458b-858e-49751f51ae22 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.069016s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.066803s] ... 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-e5fcec82-67ef-4f33-bae9-2ac2555aa358 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc [0.161705s] ... 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-06f53640-809e-478e-9603-8e79dd1be0ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:08.242305+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"} {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.069755s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_remove_parent [0.201163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8261b813-6124-4e66-a569-6b1e6aed25d3 WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8824135-242c-43be-8ce0-4222391b9875 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:08.157184+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.059582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-5d6c6361-dd7f-4c25-bc28-17bec6266f5c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.061119s] ... 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-b669b623-15e4-4ff8-b4eb-59053125201e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.041996s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.050284s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_for_anaconda [0.084693s] ... 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-2db6e0cd-47a8-4a8f-b3a0-6f8f34316f8b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard [0.114336s] ... 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-b60b6738-addc-415c-a573-680644e89a82 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:08.338166+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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.039661s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.030129s] ... 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-08a4fbca-b1ac-4014-b83e-b2e5606e5be6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.037503s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident [0.140784s] ... 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-1163ca2c-0e91-42d7-baea-b887b53633a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:08.434381+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-90d73033-854c-49ab-9b20-27a6a8aa2ba5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:08.434381+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"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.022382s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.078440s] ... 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-f9d1d6d6-1eec-4fff-adfd-b43bade153e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.021820s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.023022s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.063623s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.018447s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.052581s] ... 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-22f696b8-30c7-4e7c-8cb1-fc124a75bdf8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident_unsupported_api_version [0.080084s] ... 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-e7a6a160-c08a-406c-8d00-a5aeb5490484 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.026734s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.055376s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.022348s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.055487s] ... 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-dbf39b3b-c7c2-4578-a5b2-0941af36c26c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.021118s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.018797s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.043199s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.025029s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_uuid [0.110253s] ... 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-d432cc5a-6406-4a3d-8a5c-f394004b6980 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:08.610203+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-64553a2c-27ad-45b0-b95f-38de9598f770 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:08.610203+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_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.070055s] ... 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-b2d1b8fd-8939-4508-bbd7-8df0a7486d97 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.060668s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_bmc_address_as_none [0.038876s] ... 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-52eec5b8-ef54-4a72-8078-b7e54b5fed23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fbc277c5-8e2d-404b-8ddd-fbde0c594b9b"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.049021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/2719e11c-9475-4af0-98f1-9f6cb1c9a06d WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f95c5337-691c-428b-94d4-16c11ae6b18b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.035163s] ... 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-43496d37-4203-4e82-8ab7-c8a82d52dda2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3b2e69b0-d9da-4c89-ae3e-9498bafbae7f"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.084757s] ... 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-ba5e7e5c-d23e-4518-a2ea-fdd61cbcec48 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:08.723180+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"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.056430s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_invalid_schema [0.052139s] ... 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-d4fb3b79-de22-4a71-9ca5-c863ad252c2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.064437s] ... 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-c02875a5-f444-4f50-885e-3de0a3a835e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.072898s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.099436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9649721f-b043-47cb-b790-f1651ea13399 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfcf7d49-6c1c-4f41-96ad-9f0583ccafa4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "9649721f-b043-47cb-b790-f1651ea13399", "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/9649721f-b043-47cb-b790-f1651ea13399", "rel": "self"}, {"href": "http://localhost/nodes/9649721f-b043-47cb-b790-f1651ea13399", "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=9649721f-b043-47cb-b790-f1651ea13399 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6c9cc0c-cd28-4596-8cd7-2be480280204 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "9649721f-b043-47cb-b790-f1651ea13399", "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/9649721f-b043-47cb-b790-f1651ea13399", "rel": "self"}, {"href": "http://localhost/nodes/9649721f-b043-47cb-b790-f1651ea13399", "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=9649721f-b043-47cb-b790-f1651ea13399 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-759954bc-cc9c-4db2-9b80-0838f511a1a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "9649721f-b043-47cb-b790-f1651ea13399", "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/9649721f-b043-47cb-b790-f1651ea13399", "rel": "self"}, {"href": "http://localhost/nodes/9649721f-b043-47cb-b790-f1651ea13399", "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"]}} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_new_api [0.047805s] ... 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-531edd83-bb48-4425-bae7-d52c3f68f2c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "0ec88941-975f-428e-a653-a1826770680d", "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/0ec88941-975f-428e-a653-a1826770680d", "rel": "self"}, {"href": "http://localhost/nodes/0ec88941-975f-428e-a653-a1826770680d", "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"]}} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.060260s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.068082s] ... 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-48c56b47-7bdc-4607-a3ab-e05c27ed98d2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.099676s] ... 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-d6d942a8-09b2-4251-8350-44583dc709c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "7258fbe0-f19b-4df7-b95c-b862b09074a6", "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/7258fbe0-f19b-4df7-b95c-b862b09074a6", "rel": "self"}, {"href": "http://localhost/nodes/7258fbe0-f19b-4df7-b95c-b862b09074a6", "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"]}} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.069000s] ... 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-bdcb0633-1f0b-4ea3-b0b1-7552fc0b5a1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_port.TestPost.test_create_port_with_physical_network_upgrade [0.158616s] ... 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-5c1babe6-6f45-4db3-80df-2a714bc66596 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version [0.043243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76e21cd1-5ea3-4191-b868-b0833044ff6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.99"}, "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"}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.090664s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=cc92aa3f-5d80-455d-9361-07efdb401fea WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0e4ff62-c750-44c4-8eee-724d2b695e78 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "cc92aa3f-5d80-455d-9361-07efdb401fea", "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/cc92aa3f-5d80-455d-9361-07efdb401fea", "rel": "self"}, {"href": "http://localhost/nodes/cc92aa3f-5d80-455d-9361-07efdb401fea", "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"]}} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_microversion_headers [0.049994s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.109704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9aa3ac3f-b5fa-4029-8828-4067da315df4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e90fd1cc-eece-4709-a8e3-5deb0c0b5586 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "9aa3ac3f-b5fa-4029-8828-4067da315df4", "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/9aa3ac3f-b5fa-4029-8828-4067da315df4", "rel": "self"}, {"href": "http://localhost/nodes/9aa3ac3f-b5fa-4029-8828-4067da315df4", "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"]}} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.146294s] ... 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-3c417c1b-56a1-4882-81c7-13d562165aa4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_root.TestV1Routing.test_min_version [0.071824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c370ac67-a458-43e2-98d3-47d13a09d905 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.082086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ad0bc34-492e-4bc7-8dea-88d7f042981d X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_without_node_or_node_uuid [0.127117s] ... 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-c3922336-f3fe-4bed-8d8a-94c8e670430e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.146729s] ... 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-846fb0b5-ba53-44da-86bd-9b37d8c8355f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "907e67f9-d825-483c-a901-65609d404f78", "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/907e67f9-d825-483c-a901-65609d404f78", "rel": "self"}, {"href": "http://localhost/nodes/907e67f9-d825-483c-a901-65609d404f78", "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_ramdisk.TestLookup.test_invalid_input_addresses [0.071110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a6d2349-be66-44da-b93b-103fec6b8f81 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_runbook.TestPatch.test_add_multi [0.139951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6c2bf57a-79ef-4d64-8ca9-104c21e56994 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-12c4682e-dfb0-4052-8e5f-e4de5bf9fd04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6c2bf57a-79ef-4d64-8ca9-104c21e56994", "created_at": "2025-05-30T17:32:09.270244+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6c2bf57a-79ef-4d64-8ca9-104c21e56994", "rel": "self"}, {"href": "http://localhost/runbooks/6c2bf57a-79ef-4d64-8ca9-104c21e56994", "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}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_root_non_existent [0.065104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e67ebc2a-8f7a-4aa0-8e4b-83963d54c141 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3a4eda2a-71be-43e4-bcf6-aa59d4720a75 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_node_uuid [0.082220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf658e99-df10-42ac-ad7e-6184add24cf1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.174248s] ... 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-f42f887e-652e-4c1e-bc2e-3f0677e664e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:09.428588+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"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_too_high_index_step_fail [0.073552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5b40ab80-2140-4515-88cb-69f02ede33b0 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-aa3312e2-feea-4eda-a3f3-f47e26fdc964 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.054185s] ... 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-dfc50ce2-00c1-43a6-83bf-e96114621302 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.631682s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.093162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=d4bce324-6122-432c-8081-80fab4ddc803 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7df8fe9a-d632-405d-93ff-9b73d2433385 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "d4bce324-6122-432c-8081-80fab4ddc803", "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/d4bce324-6122-432c-8081-80fab4ddc803", "rel": "self"}, {"href": "http://localhost/nodes/d4bce324-6122-432c-8081-80fab4ddc803", "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_portgroup.TestDelete.test_delete_portgroup_byaddress [0.038534s] ... 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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_foo [0.061852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/906f7857-8448-4068-b070-72d21764dac3 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed7ec734-ce26-4322-aa67-3de9282f4a7c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.039926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content Openstack-Request-Id: req-bf0c4466-e39c-45e5-9df7-cb39530c9245 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.075043s] ... 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-f7d635f0-5a2f-44b7-9f9e-048b96204476 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.035139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content Openstack-Request-Id: req-d9688971-8279-42f0-a692-d9adba4731f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.125247s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.033748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-23927c52-c41b-43ac-8ef3-5b0f6c59f96a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_multi [0.098305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/4fd43234-9d9d-4a24-a86c-824e647bb4c1 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72237f57-1373-476f-a384-79787f6e7d01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4fd43234-9d9d-4a24-a86c-824e647bb4c1", "created_at": "2025-05-30T17:32:09.601809+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4fd43234-9d9d-4a24-a86c-824e647bb4c1", "rel": "self"}, {"href": "http://localhost/runbooks/4fd43234-9d9d-4a24-a86c-824e647bb4c1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.064200s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8a7d08e-e5d1-42e1-9d84-2a22d3ea49ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.047236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content Openstack-Request-Id: req-ddbf84bb-6e75-452e-85ed-d78f3e285ba6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.035409s] ... 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\": \"\"}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.110442s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_name [0.087180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/d6dfe76d-0048-436f-9bc8-e67106a8f8e3 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d58c1ada-30e6-48ad-b6c2-a138ae59b6b6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.041271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c7be3623-50f0-4b7d-ba2f-229b3e9649bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.079127s] ... 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-949f9955-f32e-4619-89d6-cb54d31ce45a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_runbook.TestPatch.test_remove_non_existent_property_fail [0.064054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/c830356a-00a6-4cf7-86ba-65377cf6c739 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-19cd24fc-5f19-448d-b8a0-f6d6bfc45448 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.051665s] ... 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-6348a48f-d4b5-4e9c-a9e8-76c14329ef84 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-c1627490-da3e-427b-90de-0400abb9915b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.049182s] ... 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-0e97cd8c-0a8b-4ce4-beee-9630b7703ecb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:09.862299+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': 'e0cbedea-061b-406d-aa2b-f52dd1f21703', 'name': 'bf47a315-9425-4336-9c1c-359f90e1f3d6', '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-82b559ab-5dae-48a6-b500-20be358fd82d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.101037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=ec822ba6-ec35-4b39-90ed-a1ca5dbdcb5a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-30cfead3-4b0f-4865-8cd1-abfd798842d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.164354s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_fail [0.103464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/db00fd40-d93d-4c4e-b257-8795ead2390d WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6235e13-2708-4766-a91a-a6478890e22a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_portgroup.TestPost.test_create_portgroup_address_normalized [0.091536s] ... 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-0124b1c7-44b5-44dc-9994-fe50323b203b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:09.952078+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-dacdc8e3-8bf0-490e-8567-af8551195c5f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:09.952078+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.041121s] ... 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-065b1705-03d0-4bc1-977b-485d7847ba10 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:10.004687+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_runbook.TestPatch.test_remove_non_existent_step_property_fail [0.108557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b1f4e0ee-47c4-4242-86ca-56c0eefe91db WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-74de8111-6611-4eee-8882-234103d64bb9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.152718s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.157353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=8f421adf-b8dd-46d9-b755-d1ccbd55f7d2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd64edaa-e690-445b-a7fd-5d1ad1171302 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "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/8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "rel": "self"}, {"href": "http://localhost/nodes/8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "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=8f421adf-b8dd-46d9-b755-d1ccbd55f7d2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c9f08dc-6d7a-4da1-b4aa-74e3f87695c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "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/8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "rel": "self"}, {"href": "http://localhost/nodes/8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "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=8f421adf-b8dd-46d9-b755-d1ccbd55f7d2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-32f29d07-1149-48de-b06a-7dd3e102d7af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "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/8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "rel": "self"}, {"href": "http://localho st/nodes/8f421adf-b8dd-46d9-b755-d1ccbd55f7d2", "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"]}} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.052157s] ... 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-40c2e75b-f7ea-4f3c-a2b5-2844bfe0193d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:10.048686+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-76480681-05dd-4c80-94fb-26d96222242a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:10.048686+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.035344s] ... 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-0bb1ac0e-15b2-4554-96a4-9f76b70f6208 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_only_step_fail [0.094391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5a2f91f1-9835-4e28-899c-8db65a908d78 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7d2280fc-ed39-4d5e-a6d8-7dd2191175b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.055026s] ... 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/482bfae5-8bef-49fa-b801-9cdc3b592fc3 Openstack-Request-Id: req-1b62a749-9ceb-428d-942e-aba751bd76ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "482bfae5-8bef-49fa-b801-9cdc3b592fc3", "created_at": "2025-05-30T17:32:10.141887+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/482bfae5-8bef-49fa-b801-9cdc3b592fc3", "rel": "self"}, {"href": "http://localhost/portgroups/482bfae5-8bef-49fa-b801-9cdc3b592fc3", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/482bfae5-8bef-49fa-b801-9cdc3b592fc3/ports", "rel": "self"}, {"href": "http://localhost/portgroups/482bfae5-8bef-49fa-b801-9cdc3b592fc3/ports", "rel": "bookmark"}]} GET /v1/portgroups/482bfae5-8bef-49fa-b801-9cdc3b592fc3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87277ade-58b6-4962-b140-c04ae97635fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "482bfae5-8bef-49fa-b801-9cdc3b592fc3", "created_at": "2025-05-30T17:32:10.141887+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/482bfae5-8bef-49fa-b801-9cdc3b592fc3", "rel": "self"}, {"href": "http://localhost/portgroups/482bfae5-8bef-49fa-b801-9cdc3b592fc3", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/482bfae5-8bef-49fa-b801-9cdc3b592fc3/ports", "rel": "self"}, {"href": "http://localhost/portgroups/482bfae5-8bef-49fa-b801-9cdc3b592fc3/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.119124s] ... 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-6f4dc277-477e-495b-8b49-5f6994efe169 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "41840ab9-ef77-44e8-ace3-0e31915fbb95", "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/41840ab9-ef77-44e8-ace3-0e31915fbb95", "rel": "self"}, {"href": "http://localhost/nodes/41840ab9-ef77-44e8-ace3-0e31915fbb95", "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_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.037647s] ... 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-26142824-a28d-44a8-bb7f-90e892b1014c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_steps [0.080415s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/72928954-8ebd-4d39-87a4-10089fe49b6b WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb856ed5-c98a-466a-855b-faf73f0aa116 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.145467s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_uuid [0.071889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/87278496-52a5-4232-8690-9105c4f1268f WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eda7f04c-e4a1-4da8-8122-57577637f980 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.088990s] ... 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-627bad36-0612-4784-8219-31aa7c45142f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.118846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=8671da95-93ba-47df-8ef4-4c2b4794a809 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f42555b4-65ac-4543-a8e6-26f42298585f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "8671da95-93ba-47df-8ef4-4c2b4794a809", "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/8671da95-93ba-47df-8ef4-4c2b4794a809", "rel": "self"}, {"href": "http://localhost/nodes/8671da95-93ba-47df-8ef4-4c2b4794a809", "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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.137210s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_duplicate_step [0.089486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e47148cb-0f89-43fa-92eb-477016ef91bd 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-dfde4ab3-c7b3-49dc-9cd7-38fba5865b5a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.093141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=33ee7d16-e5bb-475d-a201-fcc9fa301b82 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d55af6f1-37c1-4872-a23a-fc5f8994212e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "33ee7d16-e5bb-475d-a201-fcc9fa301b82", "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/33ee7d16-e5bb-475d-a201-fcc9fa301b82", "rel": "self"}, {"href": "http://localhost/nodes/33ee7d16-e5bb-475d-a201-fcc9fa301b82", "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"]}} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.111905s] ... 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-b60a8b79-65af-40eb-8eb5-2541272ded8a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_runbook.TestPatch.test_replace_empty_step_list_fail [0.074499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/d5568cc2-6748-446c-8f95-18eb807d4f80 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fda8e23b-1611-4842-a7a8-f280f5ec61b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.110153s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.070406s] ... 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-cac2809f-ce28-4b92-84d3-d3e756c36626 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.096202s] ... 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-07980de7-006c-4b3f-8183-01225e3bc0c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "13ced455-502a-42ab-b74a-4c7cb7fac03d", "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/13ced455-502a-42ab-b74a-4c7cb7fac03d", "rel": "self"}, {"href": "http://localhost/nodes/13ced455-502a-42ab-b74a-4c7cb7fac03d", "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"]}} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_none [0.102981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/440ec2cb-daed-4ba4-a5f3-b674b5107407 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e0e8dcda-d75b-4fed-8052-29e6eb2cedb1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.072166s] ... 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-d1df5ad2-a724-4fe9-b311-0b8c31f7774b X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-14d78ab9-cf01-41bb-be4f-2a6f84dc6742 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.135006s] ... ok 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_ramdisk.TestLookupScopedRBAC.test_invalid_input_addresses [0.093825s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-34fbcb54-096f-461b-867d-99c55f9f7829 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_runbook.TestPatch.test_replace_invalid_name_too_long [0.092313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/1e9ffcc7-f5c5-4c25-b4a1-7c44710594c7 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6f7725c-3225-4324-a5ee-411fbdf2b3b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.092199s] ... 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-a342001a-eac6-4735-8743-02bf6f3d49ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-30T17:32:10.618072+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_ramdisk.TestLookupScopedRBAC.test_invalid_input_node_uuid [0.067620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cc7257eb-81d2-448c-8244-81fbc262bb4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.089364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_step_interface_fail [0.081716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ec46bc05-fdd6-464c-82cf-b89206cd738d 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-08a5dec6-3cad-4665-b309-4d3c90c5f69b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_portgroup.TestPost.test_create_portgroup_name_invalid [0.093892s] ... 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-e8d3a237-185b-4268-b427-f0bde4475674 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.098447s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9d0d624d-8301-4e1f-a36c-a8e9c553fbe3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce487841-eeb8-4f7e-a7cc-c86539e68694 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"node": {"uuid": "9d0d624d-8301-4e1f-a36c-a8e9c553fbe3", "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/9d0d624d-8301-4e1f-a36c-a8e9c553fbe3", "rel": "self"}, {"href": "http://localhost/nodes/9d0d624d-8301-4e1f-a36c-a8e9c553fbe3", "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"]}} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.114235s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_portgroup.TestPost.test_create_portgroup_name_ok [0.056443s] ... 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-42a610e5-9720-4951-a85a-bf9b6d3f12eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:10.786178+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-12677a58-86d3-43c4-9eee-197874826799 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:10.786178+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_ramdisk.TestLookupScopedRBAC.test_not_found [0.058067s] ... 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-af95a3f9-e09e-477b-8713-8ff1ed29491e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_multi [0.114111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/738270c9-0d05-4620-8dfb-7f081a5d63fe 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-82f11592-7175-4f63-9fe2-5a1f8fc050c7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "738270c9-0d05-4620-8dfb-7f081a5d63fe", "created_at": "2025-05-30T17:32:10.775666+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/738270c9-0d05-4620-8dfb-7f081a5d63fe", "rel": "self"}, {"href": "http://localhost/runbooks/738270c9-0d05-4620-8dfb-7f081a5d63fe", "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}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.070125s] ... 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-b7eecace-9037-4f11-a886-f85afae852b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:10.832864+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-5adf6706-47fc-4236-b132-13c5d9ab3ecc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:10.832864+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_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.041412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33d99bfa-8a65-4936-91c5-699867059d9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.092411s] ... ok 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_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.050351s] ... 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-22730cc2-07c3-45ae-a5f0-4d798e5dca35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_runbook.TestPatch.test_replace_name_already_exist [0.102722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/36dd7cb8-3bec-4861-98df-a7c91841f955 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f72f2c49-9873-48c8-adb8-98761b89813e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A runbook with UUID 36dd7cb8-3bec-4861-98df-a7c91841f955 already exists.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.070482s] ... 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-1e4fc0fc-2252-45e0-9370-26471724391e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.080472s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.061811s] ... 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-751a9cfc-8869-4b6a-a711-d6bdb7a8ad48 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_ramdisk.TestLookupScopedRBAC.test_restrict_lookup [0.077271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=a60bceb3-fd03-4dd0-adb7-7b258f5e6b9b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5a43fe6-f40a-40bd-8683-9ae51e9e86ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_non_existent_step_fail [0.070350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b1d649c7-1718-4811-98f1-39c26809359b 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-f3098205-e00a-478a-ba73-d4d58de144af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.096687s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links [0.050053s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-825495dd-0e68-4bdd-89be-cb9fa23568ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "6a2fb9b1-46c8-478b-9f8b-7ba257b5025e", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/6a2fb9b1-46c8-478b-9f8b-7ba257b5025e", "rel": "self"}, {"href": "http://localhost/runbooks/6a2fb9b1-46c8-478b-9f8b-7ba257b5025e", "rel": "bookmark"}]}, {"uuid": "7ec9ed52-38d7-4935-81af-554835196b7a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/7ec9ed52-38d7-4935-81af-554835196b7a", "rel": "self"}, {"href": "http://localhost/runbooks/7ec9ed52-38d7-4935-81af-554835196b7a", "rel": "bookmark"}]}, {"uuid": "0557855f-83d7-4b41-949d-21026719815a", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/0557855f-83d7-4b41-949d-21026719815a", "rel": "self"}, {"href": "http://localhost/runbooks/0557855f-83d7-4b41-949d-21026719815a", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=0557855f-83d7-4b41-949d-21026719815a"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_step_invalid_interface [0.071750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/496dc2ba-e0da-4d5e-84fd-f828ab8882a1 WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-18527246-5db8-4484-bc11-61066da062bb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_portgroup.TestPost.test_create_portgroup_v123 [0.085160s] ... 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-9a889f29-8686-42ea-ad76-c6312212c975 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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-ed9038ec-3a6b-4069-b33e-00f1f0a4e652 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_custom_fields [0.060808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e1fd713-3d9e-4148-a69d-667e1c275869 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "1c037e06-4d8a-4dc6-8b09-3731dfde0701", "links": [{"href": "http://localhost/v1/runbooks/1c037e06-4d8a-4dc6-8b09-3731dfde0701", "rel": "self"}, {"href": "http://localhost/runbooks/1c037e06-4d8a-4dc6-8b09-3731dfde0701", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "db494be1-950a-4e1f-9363-ae7638fa3f4c", "links": [{"href": "http://localhost/v1/runbooks/db494be1-950a-4e1f-9363-ae7638fa3f4c", "rel": "self"}, {"href": "http://localhost/runbooks/db494be1-950a-4e1f-9363-ae7638fa3f4c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "5c778cd2-7407-4122-b850-a189ef215e06", "links": [{"href": "http://localhost/v1/runbooks/5c778cd2-7407-4122-b850-a189ef215e06", "rel": "self"}, {"href": "http://localhost/runbooks/5c778cd2-7407-4122-b850-a189ef215e06", "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=5c778cd2-7407-4122-b850-a189ef215e06"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_hexadecimal_lunid [0.083675s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_default_limit [0.053706s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ecf0782-2e3c-423f-b907-fc3d0b77d59e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "474f0861-7b09-471a-b45d-754fb7a720d2", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/474f0861-7b09-471a-b45d-754fb7a720d2", "rel": "self"}, {"href": "http://localhost/runbooks/474f0861-7b09-471a-b45d-754fb7a720d2", "rel": "bookmark"}]}, {"uuid": "3e1a1af7-3705-40b6-aa70-c02deacf1795", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/3e1a1af7-3705-40b6-aa70-c02deacf1795", "rel": "self"}, {"href": "http://localhost/runbooks/3e1a1af7-3705-40b6-aa70-c02deacf1795", "rel": "bookmark"}]}, {"uuid": "5ccd4d9f-319d-4f79-afe2-e5e8ad26b85b", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/5ccd4d9f-319d-4f79-afe2-e5e8ad26b85b", "rel": "self"}, {"href": "http://localhost/runbooks/5ccd4d9f-319d-4f79-afe2-e5e8ad26b85b", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=5ccd4d9f-319d-4f79-afe2-e5e8ad26b85b"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.101218s] ... 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-83b83db2-979b-4b34-91d8-46a830558ac9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:11.176354+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-a461dfa7-1bd6-4c3f-b9fd-fb006feba2ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:11.176354+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope [0.121736s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'cfb23f16-f13c-443c-8f45-bfd14deab955', '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/cfb23f16-f13c-443c-8f45-bfd14deab955 Openstack-Request-Id: req-5a21c5d8-436b-4c6f-91fe-10383e890512 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cfb23f16-f13c-443c-8f45-bfd14deab955", "created_at": "2025-05-30T17:32:11.158821+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cfb23f16-f13c-443c-8f45-bfd14deab955", "rel": "self"}, {"href": "http://localhost/runbooks/cfb23f16-f13c-443c-8f45-bfd14deab955", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/cfb23f16-f13c-443c-8f45-bfd14deab955 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-2343aae8-4e17-4bdd-b1b2-6d979f57e177 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cfb23f16-f13c-443c-8f45-bfd14deab955", "created_at": "2025-05-30T17:32:11.158821+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cfb23f16-f13c-443c-8f45-bfd14deab955", "rel": "self"}, {"href": "http://localhost/runbooks/cfb23f16-f13c-443c-8f45-bfd14deab955", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query [0.046127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05e3ab17-7738-4bd5-8dcd-f651acf87335 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "67671dc0-7950-4ee7-ba62-86492897f913", "created_at": "2025-05-30T17:32:11.207300+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/67671dc0-7950-4ee7-ba62-86492897f913", "rel": "self"}, {"href": "http://localhost/runbooks/67671dc0-7950-4ee7-ba62-86492897f913", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.096036s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.062385s] ... 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-6455ffed-dbf3-4e89-8bc5-0463e3762d2d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query_false [0.053218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff1be9bc-39e0-4d4e-ad99-78478c088a92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "a4017496-6453-49a1-8337-57270d7d92c8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a4017496-6453-49a1-8337-57270d7d92c8", "rel": "self"}, {"href": "http://localhost/runbooks/a4017496-6453-49a1-8337-57270d7d92c8", "rel": "bookmark"}]}]} GET /v1/runbooks?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49e3c9b3-ced2-42d3-9878-71c3e94ab984 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "a4017496-6453-49a1-8337-57270d7d92c8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a4017496-6453-49a1-8337-57270d7d92c8", "rel": "self"}, {"href": "http://localhost/runbooks/a4017496-6453-49a1-8337-57270d7d92c8", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope_fails [0.089787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'b4e301ec-25b0-4549-a135-fa2e539d2151', '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/b4e301ec-25b0-4549-a135-fa2e539d2151 Openstack-Request-Id: req-aa12fc69-1785-48b8-8239-602c87912174 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b4e301ec-25b0-4549-a135-fa2e539d2151", "created_at": "2025-05-30T17:32:11.278339+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b4e301ec-25b0-4549-a135-fa2e539d2151", "rel": "self"}, {"href": "http://localhost/runbooks/b4e301ec-25b0-4549-a135-fa2e539d2151", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/b4e301ec-25b0-4549-a135-fa2e539d2151 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-b91ab170-37f6-432d-9129-f465f58dda98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.080103s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_sort_key_allowed [0.042218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3504bb0e-dc58-4b8b-9593-9b3f7696e584 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "c0247d93-99ff-4f44-8e1d-1112846339f2", "created_at": "2025-05-30T17:32:11.315402+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c0247d93-99ff-4f44-8e1d-1112846339f2", "rel": "self"}, {"href": "http://localhost/runbooks/c0247d93-99ff-4f44-8e1d-1112846339f2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "d3c5888e-51c4-46ae-9af7-400ad72cdba5", "created_at": "2025-05-30T17:32:11.314220+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d3c5888e-51c4-46ae-9af7-400ad72cdba5", "rel": "self"}, {"href": "http://localhost/runbooks/d3c5888e-51c4-46ae-9af7-400ad72cdba5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "671aa088-fffa-4add-a4a2-9e36d99fb752", "created_at": "2025-05-30T17:32:11.310027+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/671aa088-fffa-4add-a4a2-9e36d99fb752", "rel": "self"}, {"href": "http://localhost/runbooks/671aa088-fffa-4add-a4a2-9e36d99fb752", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.079791s] ... 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-9786f268-40a1-4c66-9aa0-12ec12c3cf17 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:11.343202+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"}]} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.049127s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_and_fields [0.043578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f0c50460-dcd6-45c8-b69e-f532b66700b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.041220s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_new_owner_for_project_owned_runbook [0.120189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '0a595475-656e-452c-abe8-197e7cc4f9bf', '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/0a595475-656e-452c-abe8-197e7cc4f9bf Openstack-Request-Id: req-d6b520e7-e653-4993-a619-e825e292db29 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0a595475-656e-452c-abe8-197e7cc4f9bf", "created_at": "2025-05-30T17:32:11.371066+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0a595475-656e-452c-abe8-197e7cc4f9bf", "rel": "self"}, {"href": "http://localhost/runbooks/0a595475-656e-452c-abe8-197e7cc4f9bf", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/0a595475-656e-452c-abe8-197e7cc4f9bf WITH [{'path': '/owner', 'value': 'projectY', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7946a124-0aa8-4ab6-b0e0-662e74418253 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0a595475-656e-452c-abe8-197e7cc4f9bf", "created_at": "2025-05-30T17:32:11.371066+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectY", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0a595475-656e-452c-abe8-197e7cc4f9bf", "rel": "self"}, {"href": "http://localhost/runbooks/0a595475-656e-452c-abe8-197e7cc4f9bf", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.069154s] ... 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-7ce55524-420f-44f2-801e-d452bb28ef10 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "16866a20-1382-4303-ba0a-3a152cd9b7d0"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_false_and_fields [0.059026s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a03c8210-64d0-49bf-b324-929cdd341d59 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"links": [{"href": "http://localhost/v1/runbooks/7a9a9ecc-be3b-4561-a7cb-85ddc52c0831", "rel": "self"}, {"href": "http://localhost/runbooks/7a9a9ecc-be3b-4561-a7cb-85ddc52c0831", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.044908s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.069096s] ... 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-afa45aac-b58b-44ff-b27a-de204309b362 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "db0c7c8d-558c-47c2-a7d7-e56576de22fc"} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.042952s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_empty [0.068018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60d7bad9-f148-4b4e-adf2-3e403933feb9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": []} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope [0.111440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '96cc793f-a23a-447c-968f-9bc5728033a7', '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/96cc793f-a23a-447c-968f-9bc5728033a7 Openstack-Request-Id: req-1a1944e2-f67e-40c4-a933-3b2936b620af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "96cc793f-a23a-447c-968f-9bc5728033a7", "created_at": "2025-05-30T17:32:11.488210+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/96cc793f-a23a-447c-968f-9bc5728033a7", "rel": "self"}, {"href": "http://localhost/runbooks/96cc793f-a23a-447c-968f-9bc5728033a7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/96cc793f-a23a-447c-968f-9bc5728033a7 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd0e12ab-d820-4ad3-8c08-aab207a2f5fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "96cc793f-a23a-447c-968f-9bc5728033a7", "created_at": "2025-05-30T17:32:11.488210+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/96cc793f-a23a-447c-968f-9bc5728033a7", "rel": "self"}, {"href": "http://localhost/runbooks/96cc793f-a23a-447c-968f-9bc5728033a7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.045001s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.062657s] ... 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-0b46cce0-e400-4c21-9bd7-cc4ced33c260 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.api.controllers.v1.test_runbook.TestListRunbooks.test_get_all_invalid_api_version [0.050183s] ... 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\"}"} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.036481s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.032155s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_empty [0.054076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6ef361e-1129-433e-9fe5-c3f1505aeebe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"shards": []} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope_fails_if_public [0.084380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '6088d85c-3ec5-46e6-86b9-2fd1fc8ff019', '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/6088d85c-3ec5-46e6-86b9-2fd1fc8ff019 Openstack-Request-Id: req-5190f8c8-58e7-4965-97be-6715a96c7311 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6088d85c-3ec5-46e6-86b9-2fd1fc8ff019", "created_at": "2025-05-30T17:32:11.586724+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6088d85c-3ec5-46e6-86b9-2fd1fc8ff019", "rel": "self"}, {"href": "http://localhost/runbooks/6088d85c-3ec5-46e6-86b9-2fd1fc8ff019", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/6088d85c-3ec5-46e6-86b9-2fd1fc8ff019 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33f25d25-acc6-42fe-8848-d43e55bf231d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_custom_fields [0.056424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b861f7e-7a3a-4083-b5c2-edd8dabb3627 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "7f125c01-e7d4-4e34-889c-05dec2ba1fe4", "links": [{"href": "http://localhost/v1/runbooks/7f125c01-e7d4-4e34-889c-05dec2ba1fe4", "rel": "self"}, {"href": "http://localhost/runbooks/7f125c01-e7d4-4e34-889c-05dec2ba1fe4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "8f706a9d-ceb7-4d01-92af-bfed62f7accf", "links": [{"href": "http://localhost/v1/runbooks/8f706a9d-ceb7-4d01-92af-bfed62f7accf", "rel": "self"}, {"href": "http://localhost/runbooks/8f706a9d-ceb7-4d01-92af-bfed62f7accf", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "194fd7f8-2e87-4bf8-a386-20c3f2494929", "links": [{"href": "http://localhost/v1/runbooks/194fd7f8-2e87-4bf8-a386-20c3f2494929", "rel": "self"}, {"href": "http://localhost/runbooks/194fd7f8-2e87-4bf8-a386-20c3f2494929", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.038296s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one [0.063962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5d72993c-06a8-46db-a4d9-6153a0964b92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.032558s] ... ok {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.028129s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_project_owned_runbook_public [0.103231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '9d4549f3-fef7-4709-85d5-4cb341117046', '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/9d4549f3-fef7-4709-85d5-4cb341117046 Openstack-Request-Id: req-2dd3f832-a47a-46a4-bca2-c1618805e4e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9d4549f3-fef7-4709-85d5-4cb341117046", "created_at": "2025-05-30T17:32:11.681627+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9d4549f3-fef7-4709-85d5-4cb341117046", "rel": "self"}, {"href": "http://localhost/runbooks/9d4549f3-fef7-4709-85d5-4cb341117046", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/9d4549f3-fef7-4709-85d5-4cb341117046 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9a92ad6c-8a90-4d0d-8148-7c9b35224978 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9d4549f3-fef7-4709-85d5-4cb341117046", "created_at": "2025-05-30T17:32:11.681627+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9d4549f3-fef7-4709-85d5-4cb341117046", "rel": "self"}, {"href": "http://localhost/runbooks/9d4549f3-fef7-4709-85d5-4cb341117046", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_all [0.031969s] ... ok {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_name [0.023992s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_public_system_scope [0.101921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b77a4f32-5ce0-45da-84b6-972eb3c31295 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aedee78f-8b0b-471b-8f93-f90e4e6c8a04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b77a4f32-5ce0-45da-84b6-972eb3c31295", "created_at": "2025-05-30T17:32:11.777325+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b77a4f32-5ce0-45da-84b6-972eb3c31295", "rel": "self"}, {"href": "http://localhost/runbooks/b77a4f32-5ce0-45da-84b6-972eb3c31295", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_none [0.058412s] ... ok {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute [0.020424s] ... ok {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints [0.021880s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_pagination_no_uuid [0.276273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-839f7b8e-6bbe-4f32-bea1-5e86e9554949 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/d480cfe1-70d7-4596-8a40-4a6d4edf9b96", "rel": "self"}, {"href": "http://localhost/runbooks/d480cfe1-70d7-4596-8a40-4a6d4edf9b96", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ecbf04b0-513b-4ce8-9cf9-dd4293592a36", "rel": "self"}, {"href": "http://localhost/runbooks/ecbf04b0-513b-4ce8-9cf9-dd4293592a36", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=ecbf04b0-513b-4ce8-9cf9-dd4293592a36"} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 [0.039195s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_unset_public_system_scope [0.108178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE2', 'uuid': '4b94c188-cb5c-45b4-afeb-d6cbba1c0682', '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/4b94c188-cb5c-45b4-afeb-d6cbba1c0682 Openstack-Request-Id: req-e179579c-2056-4590-b0a0-195c798be7b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4b94c188-cb5c-45b4-afeb-d6cbba1c0682", "created_at": "2025-05-30T17:32:11.891246+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4b94c188-cb5c-45b4-afeb-d6cbba1c0682", "rel": "self"}, {"href": "http://localhost/runbooks/4b94c188-cb5c-45b4-afeb-d6cbba1c0682", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/4b94c188-cb5c-45b4-afeb-d6cbba1c0682 WITH [{'path': '/public', 'value': False, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f908db1e-be73-4c16-b2e9-7e45d843ab09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4b94c188-cb5c-45b4-afeb-d6cbba1c0682", "created_at": "2025-05-30T17:32:11.891246+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4b94c188-cb5c-45b4-afeb-d6cbba1c0682", "rel": "self"}, {"href": "http://localhost/runbooks/4b94c188-cb5c-45b4-afeb-d6cbba1c0682", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 [0.028118s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_custom_fields_invalid_fields [0.034391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/6b0d9674-b8d0-4ff1-9476-01a61e4de423?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7feffb9a-fb59-48bd-927a-a25182d21d15 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found [0.026351s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one [0.030949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/8317cb87-57a3-4265-9df1-447b5b758e1e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d651221-c01a-4d06-9bdc-5697f561669b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "8317cb87-57a3-4265-9df1-447b5b758e1e", "created_at": "2025-05-30T17:32:11.964155+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/8317cb87-57a3-4265-9df1-447b5b758e1e", "rel": "self"}, {"href": "http://localhost/runbooks/8317cb87-57a3-4265-9df1-447b5b758e1e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_custom_fields [0.028545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/bc2dfe4d-c192-4177-8ffc-5c0fcd3aacf6?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-255a4d99-feda-42f0-98dd-498c9a218bea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/bc2dfe4d-c192-4177-8ffc-5c0fcd3aacf6", "rel": "self"}, {"href": "http://localhost/runbooks/bc2dfe4d-c192-4177-8ffc-5c0fcd3aacf6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id [0.086696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/cd32023b-214f-4f7e-aed2-1171ceeb82dc WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-46c00c9e-4bd0-424b-9dfa-891f184d9761 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cd32023b-214f-4f7e-aed2-1171ceeb82dc", "created_at": "2025-05-30T17:32:11.971148+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cd32023b-214f-4f7e-aed2-1171ceeb82dc", "rel": "self"}, {"href": "http://localhost/runbooks/cd32023b-214f-4f7e-aed2-1171ceeb82dc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators [0.053246s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_invalid_api_version [0.027522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/83ebb363-bec8-4ace-8236-b34e5c22b46b 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\"}"} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint [0.023711s] ... ok {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational [0.029031s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one_wrong_version [0.396819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b1cd3065-95a9-4d76-8575-9a6e984f4b0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_runbook.TestListRunbooks.test_links [0.049663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-330423ec-99ee-433e-be6c-59884f916a9d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4138a0aa-5640-47d4-87a9-6e94cd229a1c", "created_at": "2025-05-30T17:32:12.059962+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c", "rel": "self"}, {"href": "http://localhost/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19b943db-fbb0-4c06-8de2-27e6ff5fc795 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4138a0aa-5640-47d4-87a9-6e94cd229a1c", "created_at": "2025-05-30T17:32:12.059962+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c", "rel": "self"}, {"href": "http://localhost/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93b7ecfd-42eb-4e00-8379-8276e6dd3817 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4138a0aa-5640-47d4-87a9-6e94cd229a1c", "created_at": "2025-05-30T17:32:12.059962+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c", "rel": "self"}, {"href": "http://localhost/runbooks/4138a0aa-5640-47d4-87a9-6e94cd229a1c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id_invalid_api_version [0.064168s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/993caba1-c829-41cf-99db-5ab915a9ae3f 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\"}"} {1} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool [0.026159s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs [0.020959s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_many [0.039873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2776641-0b67-4a26-8183-6d42310aee59 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "391a46e3-862c-475b-8ee4-605858866a8d", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/391a46e3-862c-475b-8ee4-605858866a8d", "rel": "self"}, {"href": "http://localhost/runbooks/391a46e3-862c-475b-8ee4-605858866a8d", "rel": "bookmark"}]}, {"uuid": "6ce61cd9-55a6-4c43-aed5-fa7837c9d0fc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/6ce61cd9-55a6-4c43-aed5-fa7837c9d0fc", "rel": "self"}, {"href": "http://localhost/runbooks/6ce61cd9-55a6-4c43-aed5-fa7837c9d0fc", "rel": "bookmark"}]}, {"uuid": "9df6ec55-271e-4f29-ad90-3ce43a7a5b19", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/9df6ec55-271e-4f29-ad90-3ce43a7a5b19", "rel": "self"}, {"href": "http://localhost/runbooks/9df6ec55-271e-4f29-ad90-3ce43a7a5b19", "rel": "bookmark"}]}, {"uuid": "f3cf2b60-5dcb-4bc5-b680-e10c09b8b564", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/f3cf2b60-5dcb-4bc5-b680-e10c09b8b564", "rel": "self"}, {"href": "http://localhost/runbooks/f3cf2b60-5dcb-4bc5-b680-e10c09b8b564", "rel": "bookmark"}]}, {"uuid": "3b1011d9-539a-4daf-8858-09f42fe13ad8", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/runbooks/3b1011d9-539a-4daf-8858-09f42fe13ad8", "rel": "self"}, {"href": "http://localhost/runbooks/3b1011d9-539a-4daf-8858-09f42fe13ad8", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_post [0.053909s] ... 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\": \"\"}"} {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_label [0.019029s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_one [0.043598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9a89c2b-ed5b-4e2e-b898-74b1b7fc956b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "ad16b4ea-9eaa-444d-a68b-3972b9a68286", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ad16b4ea-9eaa-444d-a68b-3972b9a68286", "rel": "self"}, {"href": "http://localhost/runbooks/ad16b4ea-9eaa-444d-a68b-3972b9a68286", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unexpected_error [0.033049s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name [0.091152s] ... 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-876cf88b-0de8-40fd-a9b3-0551bf037f1b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b81f7b61-2b36-4a81-9a63-838e9837c838", "created_at": "2025-05-30T17:32:12.129502+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b81f7b61-2b36-4a81-9a63-838e9837c838", "rel": "self"}, {"href": "http://localhost/runbooks/b81f7b61-2b36-4a81-9a63-838e9837c838", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.047505s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sensitive_data_masked [0.039216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/46907835-63cd-419c-ad5a-1986ec2582fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb9bb185-46a7-41e6-aea7-7468c26cee1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "46907835-63cd-419c-ad5a-1986ec2582fc", "created_at": "2025-05-30T17:32:12.196328+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/46907835-63cd-419c-ad5a-1986ec2582fc", "rel": "self"}, {"href": "http://localhost/runbooks/46907835-63cd-419c-ad5a-1986ec2582fc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "order": 1}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name_old_api_version [0.048077s] ... 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\"}"} {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs [0.042255s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_wrong_version [0.056794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b701600b-11de-4637-87c4-b0e837296ff0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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_runbook.TestListRunbooks.test_sort_key [0.043632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ecf4e3bb-28ed-4874-8f77-c4854bbeea2f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "1008dad9-b9b0-461a-99b8-70dbc3f1aba3", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/1008dad9-b9b0-461a-99b8-70dbc3f1aba3", "rel": "self"}, {"href": "http://localhost/runbooks/1008dad9-b9b0-461a-99b8-70dbc3f1aba3", "rel": "bookmark"}]}, {"uuid": "46f35c09-faab-42d4-a8e9-3454ff16f2e4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/46f35c09-faab-42d4-a8e9-3454ff16f2e4", "rel": "self"}, {"href": "http://localhost/runbooks/46f35c09-faab-42d4-a8e9-3454ff16f2e4", "rel": "bookmark"}]}, {"uuid": "e23fdbc2-fce5-468b-9d26-408768826870", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/e23fdbc2-fce5-468b-9d26-408768826870", "rel": "self"}, {"href": "http://localhost/runbooks/e23fdbc2-fce5-468b-9d26-408768826870", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_vnc.VncTestCase.test_get_console [0.039270s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_allowed [0.037980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-019a9117-8c7e-4ed0-8e71-4b0faceb7b3e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "4c6d26ec-338e-4ca5-82ea-a04fb2ce158b", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/4c6d26ec-338e-4ca5-82ea-a04fb2ce158b", "rel": "self"}, {"href": "http://localhost/runbooks/4c6d26ec-338e-4ca5-82ea-a04fb2ce158b", "rel": "bookmark"}]}, {"uuid": "6c196cef-1543-4564-bb27-3b604981197c", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/6c196cef-1543-4564-bb27-3b604981197c", "rel": "self"}, {"href": "http://localhost/runbooks/6c196cef-1543-4564-bb27-3b604981197c", "rel": "bookmark"}]}, {"uuid": "da70631f-4013-45e6-85b2-c4c0fc4c9611", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/da70631f-4013-45e6-85b2-c4c0fc4c9611", "rel": "self"}, {"href": "http://localhost/runbooks/da70631f-4013-45e6-85b2-c4c0fc4c9611", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_name_standard_trait [0.092328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a108727b-8cef-41f1-aaed-9ee34fbff492 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7805cc0d-27a5-4175-8a06-42ced1ad006f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a108727b-8cef-41f1-aaed-9ee34fbff492", "created_at": "2025-05-30T17:32:12.267848+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a108727b-8cef-41f1-aaed-9ee34fbff492", "rel": "self"}, {"href": "http://localhost/runbooks/a108727b-8cef-41f1-aaed-9ee34fbff492", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_authorize [0.061268s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_not_found [0.030251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9452cec1-69e1-40ac-a7f0-6c3e58461aa9 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2985a239-5350-4546-b0c0-cec8ced50af2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook 9452cec1-69e1-40ac-a7f0-6c3e58461aa9 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_multiple_shards [0.112251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-241ab5d1-9def-4f9c-9497-705a15b0566f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"shards": [{"name": "shard5", "count": 5}, {"name": "shard4", "count": 4}, {"name": "shard3", "count": 3}, {"name": "shard2", "count": 2}, {"name": "shard1", "count": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_invalid [0.066539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-541a78f7-500f-4ef4-9973-40ab10982a87 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-491d04d1-d95d-436c-8127-a5cf70523354 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-ff67f073-d8c0-4b50-a577-2c462bab733a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_project_scope [0.045992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f220286b-f15c-47fa-b960-f07d3b48d00a WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b8abd3b-57ff-4950-a23b-542cd8646868 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f220286b-f15c-47fa-b960-f07d3b48d00a", "created_at": "2025-05-30T17:32:12.367600+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f220286b-f15c-47fa-b960-f07d3b48d00a", "rel": "self"}, {"href": "http://localhost/runbooks/f220286b-f15c-47fa-b960-f07d3b48d00a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.077791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1293581e-df21-43a9-932d-37ce3939e823 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"shards": [{"name": "None", "count": 5}]} {1} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_unauthorize [0.093932s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_system_scope [0.049417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ddf55228-c538-4216-87e0-7041623eb9aa WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7204f25-80dc-47bb-a64d-e95d6077ead9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ddf55228-c538-4216-87e0-7041623eb9aa", "created_at": "2025-05-30T17:32:12.412250+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ddf55228-c538-4216-87e0-7041623eb9aa", "rel": "self"}, {"href": "http://localhost/runbooks/ddf55228-c538-4216-87e0-7041623eb9aa", "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 [0.088116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '7c31ab03-1614-4c3a-8b8e-72a80cab8345', '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/7c31ab03-1614-4c3a-8b8e-72a80cab8345 Openstack-Request-Id: req-4da731a4-4a43-432a-8de2-a943c7163719 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7c31ab03-1614-4c3a-8b8e-72a80cab8345", "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/7c31ab03-1614-4c3a-8b8e-72a80cab8345", "rel": "self"}, {"href": "http://localhost/runbooks/7c31ab03-1614-4c3a-8b8e-72a80cab8345", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/7c31ab03-1614-4c3a-8b8e-72a80cab8345 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce442b43-b2ca-48c9-b6ca-87a79f31a12d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7c31ab03-1614-4c3a-8b8e-72a80cab8345", "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/7c31ab03-1614-4c3a-8b8e-72a80cab8345", "rel": "self"}, {"href": "http://localhost/runbooks/7c31ab03-1614-4c3a-8b8e-72a80cab8345", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_one_shard [0.055464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9e315b2-6b51-43cb-b271-32b4eeb86366 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"shards": [{"name": "shard1", "count": 1}]} {1} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate [0.079359s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token [0.033802s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_complex_step_args [0.078193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'cd0268ff-c7bb-4409-aed7-dcd0906b8198', '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/cd0268ff-c7bb-4409-aed7-dcd0906b8198 Openstack-Request-Id: req-60860764-0e42-4cbb-9c94-5630cf1317c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cd0268ff-c7bb-4409-aed7-dcd0906b8198", "created_at": "2025-05-30T17:32:12.537614+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cd0268ff-c7bb-4409-aed7-dcd0906b8198", "rel": "self"}, {"href": "http://localhost/runbooks/cd0268ff-c7bb-4409-aed7-dcd0906b8198", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.040330s] ... ok {1} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate_expired [0.059003s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps [0.028911s] ... ok {1} ironic.tests.unit.common.test_vnc.VncTestCase.test_token_valid_until [0.035675s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.034263s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_doesnt_contain_id [0.084937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e9e46924-4c64-45bf-9d81-840ae730b769', '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/e9e46924-4c64-45bf-9d81-840ae730b769 Openstack-Request-Id: req-2910c017-18be-4373-9027-2410fe27e7ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e9e46924-4c64-45bf-9d81-840ae730b769", "created_at": "2025-05-30T17:32:12.613967+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e9e46924-4c64-45bf-9d81-840ae730b769", "rel": "self"}, {"href": "http://localhost/runbooks/e9e46924-4c64-45bf-9d81-840ae730b769", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/e9e46924-4c64-45bf-9d81-840ae730b769 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d9d97c0-559a-4be6-b205-ea0787befdc3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e9e46924-4c64-45bf-9d81-840ae730b769", "created_at": "2025-05-30T17:32:12.613967+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e9e46924-4c64-45bf-9d81-840ae730b769", "rel": "self"}, {"href": "http://localhost/runbooks/e9e46924-4c64-45bf-9d81-840ae730b769", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.040766s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.031340s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_error [0.066257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '37cee74b-d47c-4440-bae2-3205a220dbef', '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-d4938dda-ec2b-437a-b982-f7e9c3cfdbb6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.039442s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.122249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy [0.313419s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.033506s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden [0.026195s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.032783s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.022997s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.067450s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_generate_uuid [0.090391s] ... 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/86171fc9-2e85-49c2-8005-0e5445529533 Openstack-Request-Id: req-bf3083d7-760f-4be6-a015-3a3d8cc969a5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "86171fc9-2e85-49c2-8005-0e5445529533", "created_at": "2025-05-30T17:32:12.792544+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/86171fc9-2e85-49c2-8005-0e5445529533", "rel": "self"}, {"href": "http://localhost/runbooks/86171fc9-2e85-49c2-8005-0e5445529533", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/86171fc9-2e85-49c2-8005-0e5445529533 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8579ee85-88cc-4631-8ab1-4f3cd0efb788 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "86171fc9-2e85-49c2-8005-0e5445529533", "created_at": "2025-05-30T17:32:12.792544+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/86171fc9-2e85-49c2-8005-0e5445529533", "rel": "self"}, {"href": "http://localhost/runbooks/86171fc9-2e85-49c2-8005-0e5445529533", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} None {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.018533s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.041431s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.023720s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.018568s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_api_version [0.050988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '5832b66a-5a9f-4486-a4ce-fa57b367bcc4', '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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.016487s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.048139s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.024335s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.017156s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.019500s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.059106s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_empty_steps [0.094821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '261602eb-8d13-43c9-be9a-69ca03edb506', 'steps': [], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e09172bc-3bfe-4ef1-8e04-f9163ce18ad3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.028780s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.045511s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.027400s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.027114s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.029169s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.069797s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_extra [0.109528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '44e90be9-32fc-4df2-989d-71757ff5df90', '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-cb4f8757-93c4-4021-9f3a-026c23c5e891 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'object', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.028085s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.058727s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.037594s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.039539s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_foo [0.100143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '3187c696-837e-4fc3-8d60-1355cd9b5684', '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-db2b2d5a-472f-4df1-a49e-00b7a0eb1913 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_utils.TestCheckAllowFields.test_allow_portgroups [0.060064s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.030024s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.027442s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.047668s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.027436s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name [0.077896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 1, 'uuid': 'ac573e9e-34b9-4c88-bc1c-d2ac520429f7', '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-7e26aac0-1e59-42bb-b181-3f0a1307f37b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.053209s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.037333s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.038407s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.047530s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name_none [0.076294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': None, 'uuid': '172583a1-5a32-4013-b4f8-0f6b6fc40bc4', '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-cd401d73-8fb3-48ba-a1ed-9800cd7f97a1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: None is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.036970s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.035094s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.585247s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.038384s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.054085s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_steps [0.070218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '9bc5f64e-efac-488e-8f99-787e7d344e35', 'steps': {}, 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7d834c80-c74d-4f37-af7a-484b554f9c6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: {} is not of type 'array'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.031534s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.070601s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.041795s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args1 [0.059556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '25f8d52d-b4ae-4f14-b3a1-b327197fff6b', '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-8dbf5131-a007-4108-bdd8-37c003eaf300 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.092047s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.033094s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.064327s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.039231s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args2 [0.064237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '91404b86-35dc-40dd-8284-8a544c7ad20f', '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-c3a84827-bf03-4d5d-bd3d-2b657e8659df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is not of type 'object'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.030158s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.079039s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.026151s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_foo [0.076264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '030b442b-4aa7-47c0-b138-f2d11a0ab1c5', '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-d1f23ad0-2966-4af8-ab67-f0764ba811c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.044803s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.114676s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.039513s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.037991s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.038469s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface1 [0.068330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '0ea03bfa-af37-4eab-b083-14d2b8d28105', '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-39cd2bbb-d838-454d-83cf-b8f7b6c9328e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [3] is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.029340s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.019494s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.090360s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_configdrive [0.050674s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.015740s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.026651s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface2 [0.077499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'dbff619b-f51a-467e-b80e-efce4c51e1f6', '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-b17fd75f-57bc-43ad-b2d2-eb277059a936 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: '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 [0.041975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0384264-c470-4ee4-b60b-b6f96e55a072 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "6766e7dd-b6a6-41bf-8a3e-6f2c4989d00a", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6766e7dd-b6a6-41bf-8a3e-6f2c4989d00a", "rel": "self"}, {"href": "http://localhost/volume/connectors/6766e7dd-b6a6-41bf-8a3e-6f2c4989d00a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "87da42c2-54cd-4d4b-9bc6-deb030a8e03d", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/87da42c2-54cd-4d4b-9bc6-deb030a8e03d", "rel": "self"}, {"href": "http://localhost/volume/connectors/87da42c2-54cd-4d4b-9bc6-deb030a8e03d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3414a29d-fb3b-4dcb-a527-5175d03a871f", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3414a29d-fb3b-4dcb-a527-5175d03a871f", "rel": "self"}, {"href": "http://localhost/volume/connectors/3414a29d-fb3b-4dcb-a527-5175d03a871f", "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=3414a29d-fb3b-4dcb-a527-5175d03a871f"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.050673s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.088727s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.054260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f358a6ba-1985-42ef-b7c8-93a59360f8da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "68010135-715e-4802-a02f-6372abb182f9", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/68010135-715e-4802-a02f-6372abb182f9", "rel": "self"}, {"href": "http://localhost/volume/connectors/68010135-715e-4802-a02f-6372abb182f9", "rel": "bookmark"}]}, {"uuid": "cfbc431d-1e70-4f59-8206-523872028f17", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/cfbc431d-1e70-4f59-8206-523872028f17", "rel": "self"}, {"href": "http://localhost/volume/connectors/cfbc431d-1e70-4f59-8206-523872028f17", "rel": "bookmark"}]}, {"uuid": "7486f99d-cebc-4e31-be67-9cd7da82a102", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/7486f99d-cebc-4e31-be67-9cd7da82a102", "rel": "self"}, {"href": "http://localhost/volume/connectors/7486f99d-cebc-4e31-be67-9cd7da82a102", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=7486f99d-cebc-4e31-be67-9cd7da82a102"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_negative_order [0.073122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '063baa5d-c199-4e06-8f03-ff3ad00722de', '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-86aca594-1f3f-47c9-9434-7797c7653943 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: -1 is less than the minimum of 0\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.038016s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.022124s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.047192s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62dc88d9-5b62-471e-a058-54227a99eee0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "8e19ff3e-17c4-4208-8c98-51ff3c7c97ef", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8e19ff3e-17c4-4208-8c98-51ff3c7c97ef", "rel": "self"}, {"href": "http://localhost/volume/connectors/8e19ff3e-17c4-4208-8c98-51ff3c7c97ef", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6a87af7d-6f5e-46c4-bb4e-83f3dcdd148c", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6a87af7d-6f5e-46c4-bb4e-83f3dcdd148c", "rel": "self"}, {"href": "http://localhost/volume/connectors/6a87af7d-6f5e-46c4-bb4e-83f3dcdd148c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "838ddf52-924f-490b-ab4b-cadf9539aba0", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/838ddf52-924f-490b-ab4b-cadf9539aba0", "rel": "self"}, {"href": "http://localhost/volume/connectors/838ddf52-924f-490b-ab4b-cadf9539aba0", "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=838ddf52-924f-490b-ab4b-cadf9539aba0"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.017177s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.014993s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_order [0.070985s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '094cf34c-c7ac-4f70-8a6a-6c5fbf14e9e6', '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-d93961e4-515f-43b5-95bd-12fe3fa35b19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.017670s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.055665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d6b49cf-c21a-4480-ada5-d2e905e7b32c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "99d9f955-0cb5-47a9-8e8b-7e84cd4aa5eb", "created_at": "2025-05-30T17:32:13.910433+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/99d9f955-0cb5-47a9-8e8b-7e84cd4aa5eb", "rel": "self"}, {"href": "http://localhost/volume/connectors/99d9f955-0cb5-47a9-8e8b-7e84cd4aa5eb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "dfb73368-5f56-4f47-8817-064738ec84f2", "created_at": "2025-05-30T17:32:13.911330+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/dfb73368-5f56-4f47-8817-064738ec84f2", "rel": "self"}, {"href": "http://localhost/volume/connectors/dfb73368-5f56-4f47-8817-064738ec84f2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "058e3032-d8ee-4eed-8664-7ba9ec576281", "created_at": "2025-05-30T17:32:13.912457+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/058e3032-d8ee-4eed-8664-7ba9ec576281", "rel": "self"}, {"href": "http://localhost/volume/connectors/058e3032-d8ee-4eed-8664-7ba9ec576281", "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=058e3032-d8ee-4eed-8664-7ba9ec576281"} {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.110744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deploy_steps_version_older [0.031697s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.034671s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.054645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-372df245-bd6e-4ab5-a168-59515f831390 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:13.985824+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_runbook.TestPost.test_create_invalid_step_field_step [0.078260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '14015e3b-cda7-4fcf-917d-31c46e587d92', '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-fe4149aa-e21b-4dea-af7c-623465153fca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.016061s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.015181s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.032295s] ... 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-e18a3998-678e-4e0c-9570-509bae84e6b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.015214s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.015045s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.028955s] ... 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-65eabb96-a9a5-4e8b-bd90-f31424b9958f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.019083s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_long_name [0.078549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'a493c5f7-256f-48e5-ba85-a69b9556d9e2', '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/a493c5f7-256f-48e5-ba85-a69b9556d9e2 Openstack-Request-Id: req-9b951e0a-d7c5-457c-89d4-e219cb80a38d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a493c5f7-256f-48e5-ba85-a69b9556d9e2", "created_at": "2025-05-30T17:32:14.080361+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a493c5f7-256f-48e5-ba85-a69b9556d9e2", "rel": "self"}, {"href": "http://localhost/runbooks/a493c5f7-256f-48e5-ba85-a69b9556d9e2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.154812s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.028401s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.047532s] ... 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-026c42e7-f163-4c08-9286-c9e4638d7248 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:14.087469+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_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.016907s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.036463s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d541bbb-965f-47c3-a06c-c088a1a4899c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.028726s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_name_invalid_too_long [0.080045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '72d467c7-ac97-45a3-b29a-9b51293d984a', '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-43b9ccfb-847d-463d-8019-478c9079c07a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.028839s] ... 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\": \"\"}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.075003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.039737s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.029045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e25bc5a-d61b-4052-b35c-5090543d98a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_name [0.053502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'uuid': 'e2fde17e-6380-448f-ab09-85fb3811dd09', '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-44a5c1ea-c253-4ed8-aefc-8010995af330 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'name' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.040466s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.068671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.052350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f181fad1-0020-46ff-915e-62db176a6e4e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": []} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.036949s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.034364s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_steps [0.089157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'cbcdf7b2-656f-40a3-8e62-8bbe3681f51c', 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2ad53701-7d97-4d97-9e5e-b08e36ef84bb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'steps' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.065544s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.062177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a373ed8a-e2a7-4b7a-b319-75ad3ed9aee4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "ae3c9722-4f31-4e56-a2d4-6da114629271", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ae3c9722-4f31-4e56-a2d4-6da114629271", "rel": "self"}, {"href": "http://localhost/volume/connectors/ae3c9722-4f31-4e56-a2d4-6da114629271", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "1e937769-6706-4cd6-bcfc-24f465c3408a", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1e937769-6706-4cd6-bcfc-24f465c3408a", "rel": "self"}, {"href": "http://localhost/volume/connectors/1e937769-6706-4cd6-bcfc-24f465c3408a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "36fdfc15-0bc9-4dd5-88b7-82b268ab99e9", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/36fdfc15-0bc9-4dd5-88b7-82b268ab99e9", "rel": "self"}, {"href": "http://localhost/volume/connectors/36fdfc15-0bc9-4dd5-88b7-82b268ab99e9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.037264s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_interface [0.066750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'f025f2e9-bbdd-4b04-86e9-9cd6da43828f', '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-25ee489b-d8ff-4a4a-b180-56c629312e85 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'interface' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.058745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be775cea-e336-4743-a766-a9554fef0bf1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "6947cf84-fecb-4b00-8f76-c66e90e12bd3", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/6947cf84-fecb-4b00-8f76-c66e90e12bd3", "rel": "self"}, {"href": "http://localhost/volume/connectors/6947cf84-fecb-4b00-8f76-c66e90e12bd3", "rel": "bookmark"}]}, {"uuid": "2c05e574-4758-449e-8be2-c551f5ec032a", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/2c05e574-4758-449e-8be2-c551f5ec032a", "rel": "self"}, {"href": "http://localhost/volume/connectors/2c05e574-4758-449e-8be2-c551f5ec032a", "rel": "bookmark"}]}, {"uuid": "bd5aee8f-c4d2-4cfd-9604-83eac8e334ee", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/bd5aee8f-c4d2-4cfd-9604-83eac8e334ee", "rel": "self"}, {"href": "http://localhost/volume/connectors/bd5aee8f-c4d2-4cfd-9604-83eac8e334ee", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.044982s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.088469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.031059s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.043777s] ... 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-948015d8-fe99-450c-bef1-4b5dd33893d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"connector_id": "test-connector_id-0", "links": [{"href": "http://localhost/v1/volume/connectors/b7d7f6b4-bb37-46f1-ad3e-8ff1d15f0614", "rel": "self"}, {"href": "http://localhost/volume/connectors/b7d7f6b4-bb37-46f1-ad3e-8ff1d15f0614", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/2447bfa6-d8c9-4c52-8f6e-b75777bd5bba", "rel": "self"}, {"href": "http://localhost/volume/connectors/2447bfa6-d8c9-4c52-8f6e-b75777bd5bba", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=2447bfa6-d8c9-4c52-8f6e-b75777bd5bba"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.034098s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_order [0.064729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '878d8ca3-9145-49de-92dd-eb3095ee18b7', '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-0f2d68e5-650f-4ebc-91c4-f509271ec5d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'order' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.053268s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call [0.088748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.040552s] ... 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-5cc4467f-e88f-4311-bbf7-37dd00ad86ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.038340s] ... 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-eb9c3844-e7f4-48e5-ae71-4d8af698921e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:14.523909+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_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.065694s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_step [0.106387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'dcd36253-af4a-43db-829f-a53802c8b392', '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-8913fe2e-8cd0-48ad-a433-86b508c0607c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'step' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.042131s] ... 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-2135b3e3-aa57-4b51-afcd-a404a0d8a8f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.055683s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.027793s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_public_runbook_project_scope_fails [0.046331s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '8fabe68e-bad4-4d0c-9cc1-f4d46c7afcf1', '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-a32f168b-0607-4452-bb1b-f72d1fee4dd4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.125774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.035057s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.054626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ffe4ff2-6124-45fc-b715-542b1e6d25ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "de2d044a-3331-45cf-bf20-94cb911dc3e2", "created_at": "2025-05-30T17:32:14.633342+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2", "rel": "self"}, {"href": "http://localhost/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4599c3b3-7785-4098-a848-9feaca2aefca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "de2d044a-3331-45cf-bf20-94cb911dc3e2", "created_at": "2025-05-30T17:32:14.633342+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2", "rel": "self"}, {"href": "http://localhost/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf77d437-fd76-4f67-bf82-4930fbeb02dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "de2d044a-3331-45cf-bf20-94cb911dc3e2", "created_at": "2025-05-30T17:32:14.633342+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2", "rel": "self"}, {"href": "http://localhost/volume/connectors/de2d044a-3331-45cf-bf20-94cb911dc3e2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_project_scope_fails [0.064693s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'ac42ddc6-b54a-47ce-9e4c-0390d880c5b0', '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-783bfb67-f187-4914-8825-746b3c6275b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.038615s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.084378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.027201s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.058641s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df590cec-5de2-46b8-864d-4c5c133e476d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "a899d497-d05b-4511-9524-f154f96c410d", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a899d497-d05b-4511-9524-f154f96c410d", "rel": "self"}, {"href": "http://localhost/volume/connectors/a899d497-d05b-4511-9524-f154f96c410d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "cddfe598-7681-410f-9f50-f6aebd660e8d", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cddfe598-7681-410f-9f50-f6aebd660e8d", "rel": "self"}, {"href": "http://localhost/volume/connectors/cddfe598-7681-410f-9f50-f6aebd660e8d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0e68f9be-002a-46e5-9f49-d1387d78988d", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0e68f9be-002a-46e5-9f49-d1387d78988d", "rel": "self"}, {"href": "http://localhost/volume/connectors/0e68f9be-002a-46e5-9f49-d1387d78988d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ee7be1f7-1c80-4f24-8302-ec0a890f57de", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ee7be1f7-1c80-4f24-8302-ec0a890f57de", "rel": "self"}, {"href": "http://localhost/volume/connectors/ee7be1f7-1c80-4f24-8302-ec0a890f57de", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e686b78c-1649-43d2-80c7-329f43dcf7f0", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e686b78c-1649-43d2-80c7-329f43dcf7f0", "rel": "self"}, {"href": "http://localhost/volume/connectors/e686b78c-1649-43d2-80c7-329f43dcf7f0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_system_scope [0.051811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e1111391-5caf-40b9-896a-f325baeeefdf', '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/e1111391-5caf-40b9-896a-f325baeeefdf Openstack-Request-Id: req-83ae5460-a1c1-47fa-a3bf-ce4a542c5d97 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e1111391-5caf-40b9-896a-f325baeeefdf", "created_at": "2025-05-30T17:32:14.725027+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e1111391-5caf-40b9-896a-f325baeeefdf", "rel": "self"}, {"href": "http://localhost/runbooks/e1111391-5caf-40b9-896a-f325baeeefdf", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/e1111391-5caf-40b9-896a-f325baeeefdf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ae6677d-8325-457a-8914-f8767dfc0e59 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e1111391-5caf-40b9-896a-f325baeeefdf", "created_at": "2025-05-30T17:32:14.725027+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e1111391-5caf-40b9-896a-f325baeeefdf", "rel": "self"}, {"href": "http://localhost/runbooks/e1111391-5caf-40b9-896a-f325baeeefdf", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.054091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.037674s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.053674s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35068903-785f-40f5-b974-4848a12077de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestPost.test_create_runbook_project_scope [0.051599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e41a55af-3815-4a7e-885b-59917dcfcf37', '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/e41a55af-3815-4a7e-885b-59917dcfcf37 Openstack-Request-Id: req-3a20d499-fadc-4767-9464-c0703e6a6ae5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e41a55af-3815-4a7e-885b-59917dcfcf37", "created_at": "2025-05-30T17:32:14.779349+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e41a55af-3815-4a7e-885b-59917dcfcf37", "rel": "self"}, {"href": "http://localhost/runbooks/e41a55af-3815-4a7e-885b-59917dcfcf37", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/e41a55af-3815-4a7e-885b-59917dcfcf37 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc0b3ddd-cf8a-402c-bd6a-516040b10200 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e41a55af-3815-4a7e-885b-59917dcfcf37", "created_at": "2025-05-30T17:32:14.779349+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e41a55af-3815-4a7e-885b-59917dcfcf37", "rel": "self"}, {"href": "http://localhost/runbooks/e41a55af-3815-4a7e-885b-59917dcfcf37", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.041414s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.041879s] ... 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_runbook_system_scope [0.050365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '193ed30e-02b3-41c0-957a-85c32b4d87a4', '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/193ed30e-02b3-41c0-957a-85c32b4d87a4 Openstack-Request-Id: req-b536c845-b180-4c52-a362-19cfd45f24e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "193ed30e-02b3-41c0-957a-85c32b4d87a4", "created_at": "2025-05-30T17:32:14.827898+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/193ed30e-02b3-41c0-957a-85c32b4d87a4", "rel": "self"}, {"href": "http://localhost/runbooks/193ed30e-02b3-41c0-957a-85c32b4d87a4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/193ed30e-02b3-41c0-957a-85c32b4d87a4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c008126-f6a7-4fca-9135-49745ab24014 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "193ed30e-02b3-41c0-957a-85c32b4d87a4", "created_at": "2025-05-30T17:32:14.827898+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/193ed30e-02b3-41c0-957a-85c32b4d87a4", "rel": "self"}, {"href": "http://localhost/runbooks/193ed30e-02b3-41c0-957a-85c32b4d87a4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.037929s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.057746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-738d9613-7099-4ba1-82de-f3018db8616c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "2cf87da6-3f9a-46f2-807e-3d818e8458f7", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2cf87da6-3f9a-46f2-807e-3d818e8458f7", "rel": "self"}, {"href": "http://localhost/volume/connectors/2cf87da6-3f9a-46f2-807e-3d818e8458f7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "691cdda1-839d-4672-ac95-dbea5788de7c", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/691cdda1-839d-4672-ac95-dbea5788de7c", "rel": "self"}, {"href": "http://localhost/volume/connectors/691cdda1-839d-4672-ac95-dbea5788de7c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9aada998-e9e4-483e-9059-405103781d80", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9aada998-e9e4-483e-9059-405103781d80", "rel": "self"}, {"href": "http://localhost/volume/connectors/9aada998-e9e4-483e-9059-405103781d80", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_standard_trait_name [0.044571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'HW_CPU_X86_VMX', 'uuid': 'c00ca1e0-837f-48fd-be7a-117dd94016df', '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/c00ca1e0-837f-48fd-be7a-117dd94016df Openstack-Request-Id: req-caa02301-93a4-4ec9-b816-f532fab6159e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c00ca1e0-837f-48fd-be7a-117dd94016df", "created_at": "2025-05-30T17:32:14.880585+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c00ca1e0-837f-48fd-be7a-117dd94016df", "rel": "self"}, {"href": "http://localhost/runbooks/c00ca1e0-837f-48fd-be7a-117dd94016df", "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_sort_key_invalid [0.036358s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca52a20e-64c1-4c6f-92f8-0c3d6ca3a947 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-a179e217-c9f8-4e24-9029-2d3f6d844ee0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_step_string_order [0.043704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '151acae2-2429-457e-a515-52da675b52ff', '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/151acae2-2429-457e-a515-52da675b52ff Openstack-Request-Id: req-61dd515e-f103-4a7b-a085-aadcbec64b9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "151acae2-2429-457e-a515-52da675b52ff", "created_at": "2025-05-30T17:32:14.927636+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/151acae2-2429-457e-a515-52da675b52ff", "rel": "self"}, {"href": "http://localhost/runbooks/151acae2-2429-457e-a515-52da675b52ff", "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.035755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '93d0802c-5414-442c-a63d-dbd5e2fbba59', '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-e51bc821-3f5d-4752-90ab-e3a65bbcbec6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_volume_target.TestPatch.test_add_multi [0.064443s] ... 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-9b974fc6-99bb-488a-b7eb-f238f58695a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:14.943329+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"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.021235s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.017052s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.040658s] ... 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-ad6a47cd-6628-4516-821a-b0498a3fe7d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.021682s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.028777s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_complex_path [0.018519s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.061639s] ... 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-15045840-a45f-4f61-8cc1-2217d0210982 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:15.059482+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_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_slash [0.045477s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.068249s] ... 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-b926ce33-47e1-4f1b-b905-27e2c87ed560 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_tilde [0.040382s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.417772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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() {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_incomplete_escape [0.042409s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.070301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_invalid_escape_sequence [0.039887s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.101013s] ... 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-7021a2cc-9864-4b64-83b5-69626b6c7f8a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:15.210004+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"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.430305s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.036576s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.040988s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.122596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.040887s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.044494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.047070s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.034407s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.078248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.041618s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.035891s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.095628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.035575s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_slash [0.377504s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.042046s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.398588s] ... 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-ffedd7ad-3fd5-46eb-90d2-14f5527bb7fa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_tilde [0.038644s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.044676s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.112284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.039589s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.059033s] ... 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-26aacc40-24d7-4c2d-ab24-d3d59d74c675 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.039755s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.035660s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.039839s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.038044s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.090077s] ... 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-1bf0253b-1ac4-4d39-b2ae-bee04950743c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:15.737927+00:00", "updated_at": "2025-05-30T17:32:15.747496+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-10698eba-9e94-41ae-8eed-e37490c2b8be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:15.737927+00:00", "updated_at": "2025-05-30T17:32:15.747496+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"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.047467s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.038908s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.039065s] ... 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-67f9054b-ab8c-46be-b577-9b8a1c3ba6e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.036454s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.059055s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.039633s] ... 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-0ab1a72b-7804-474e-a2e4-d3df890d6f59 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.215076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.063196s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.056251s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.054304s] ... 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-ad3efa0a-42ad-487f-9ccf-d02ece656d96 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.039825s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.041262s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.054456s] ... 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-4ea7f5b4-0dc9-44c7-88c0-73e026efc4fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.036740s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.098456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.045689s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.049989s] ... 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-fad85626-8aaa-4b25-9e9b-8c09547aeed7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.045199s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.047341s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.041826s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_without_jsonrpc_port_pined_version [0.082244s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.044605s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.038227s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.090556s] ... 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-ef6b9515-3904-4d6c-8e8b-3d2952e15098 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:16.094601+00:00", "updated_at": "2025-05-30T17:32:16.097297+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"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.044502s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.041256s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.034798s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.035274s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.077309s] ... 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-25d378ed-a96e-44e3-9a0d-706184cdd0a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {3} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.042326s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.045014s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.047474s] ... 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-085b25a1-4970-4f0e-9a98-6625f526c28b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:16.238871+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_versions.TestMaxVersionString.test_max_version_pinned [0.035938s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.036435s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.056398s] ... 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-730decbf-e858-47f7-b5f4-cc2407f8c409 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_special_fields [0.039249s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.041306s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.092832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3f0329f3-145c-4170-927a-2c81ef318704 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-2d387d97-ec66-43a8-b44f-141cffa3ca1c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-563acab0-6938-46d0-b810-8cd2444a18da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-9554713c-da9c-49a3-9f8a-5a507d059d9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": []} GET /volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a85793b-1f64-49ac-b06c-39c70c5f4917 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": []} GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a397780b-fecd-4890-840a-d511d8bd818e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": []} GET /volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7df74a1e-ad93-4960-8e4d-4ca20a4c3e49 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": []} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.038787s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.051322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dcb2ccc1-a71b-4212-9eca-a1cf1d705649 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.331083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.114507s] ... 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-bcd06ed4-8043-4b1c-ad60-0183bd799099 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.040291s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.035533s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.052686s] ... 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-a64e4755-fe47-4e07-ac6c-b556e560c4e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:16.461536+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"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.078071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.041099s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.111967s] ... 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-c5126c71-b9f5-4a72-853f-8b4635cee314 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-bdfad670-4b56-4c12-9ccf-66aab0cfcc40 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.060928s] ... 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-3a4d3718-c27f-4b74-964f-8ce39eabcbd0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:16.512505+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.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.037272s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.065005s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.035964s] ... 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.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.048511s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.044910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/2300c82b-9c4c-4f7b-9e0b-cbcf477a814b WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-51721346-65b3-4192-be96-c709486092a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 2300c82b-9c4c-4f7b-9e0b-cbcf477a814b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.093913s] ... 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-2696d1db-2fde-4b6e-86d3-f8e3a1816acf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:16.603551+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-efd21baa-e690-4eca-a289-bef6541a580b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:16.603551+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"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.078798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.047235s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.036925s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.073649s] ... 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-76bceb56-2a7f-4dfc-838b-049698263377 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.085176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_001_values ... SKIPPED: These are fake reference values for YAML templating {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.057646s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.032659s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.036337s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.099409s] ... 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/80ddb9fb-44b9-4e07-a777-4ba472a3bd59 Openstack-Request-Id: req-12025f33-986f-49ff-a7fa-d79e2245ca8d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "80ddb9fb-44b9-4e07-a777-4ba472a3bd59", "created_at": "2025-05-30T17:32:16.790554+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/80ddb9fb-44b9-4e07-a777-4ba472a3bd59", "rel": "self"}, {"href": "http://localhost/volume/connectors/80ddb9fb-44b9-4e07-a777-4ba472a3bd59", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/80ddb9fb-44b9-4e07-a777-4ba472a3bd59 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9fe4a06e-a3ec-47f9-b727-60a5003076ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "80ddb9fb-44b9-4e07-a777-4ba472a3bd59", "created_at": "2025-05-30T17:32:16.790554+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/80ddb9fb-44b9-4e07-a777-4ba472a3bd59", "rel": "self"}, {"href": "http://localhost/volume/connectors/80ddb9fb-44b9-4e07-a777-4ba472a3bd59", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.113811s] ... 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-f2a51644-20b3-4bb6-a5a5-690f2f37d003 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.039922s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.053619s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.042900s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.031765s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.211747s] ... ok 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( {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.053033s] ... 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-f65235de-84e6-4cc8-b983-79db16d5b6c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.041385s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.146080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2bdf4fdc-93a7-4a71-9b40-1eab2829d9bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_utils.TestVendorPassthru.test_vendor_passthru_async [0.031453s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.059693s] ... 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-1426ea89-6986-4504-be6d-586ae3d34da3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.042141s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.051899s] ... 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-3528ddf2-95db-4185-8469-2253bc4f73fc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.039214s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.148881s] ... ok 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.111958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2f5cf1e0-e7a8-4431-a287-670e700026f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.030973s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.067781s] ... 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-e7ccf146-28be-40d2-b32b-2d1616a7033e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.042709s] ... ok {1} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.066078s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_005_nodes_get_node_admin [0.084608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76462887-e39b-4b68-8757-f939206e185f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:17.145805+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.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.063402s] ... 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-70976aea-df8c-4af0-b183-e54979eea29b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.070206s] ... ok 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_volume_connector.TestPatch.test_add_multi [0.090700s] ... 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-59b8b769-d148-42fd-bc38-fe99a81e9356 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.212226+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.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.048509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_006_nodes_get_node_member [0.108282s] ... 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-bc0c7677-1ab6-49dc-801d-cdb16bef4fdf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestPost.test_create_volume_connector_type_value_already_exist [0.103968s] ... 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-4bb245a3-8a46-4d40-8437-90568f2aaf48 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.287922+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': '8b0872c7-e9b3-4b5e-a679-3e1b3ccce56d', '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-8f35d003-36a0-4b5a-a962-2bb695bb8130 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.075474s] ... 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-8c27f3b1-9397-455c-bc4f-87709a158149 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.079739s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_007_nodes_get_node_observer [0.079058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-115f563c-735d-4cd1-a50e-34e8e43b39ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:17.340300+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.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.099355s] ... 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-765eb4c3-0ad4-4498-add7-e0dd7191a306 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.395127+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-a90d8e24-bef2-4611-920a-871cdef6fd38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.395127+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"} {1} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.069070s] ... ok 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_volume_connector.TestPatch.test_add_node_uuid [0.097789s] ... 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-314287b8-2b0c-4f9c-96bc-18dd26eb9b44 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.384186+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_008_nodes_get_node_other_admin [0.067604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71b841c5-8b34-42b6-9075-cb783c7fcaa6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:17.415624+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.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.081299s] ... 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-122a19de-ad1b-46bb-ba90-604f7c37ee3e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.499767+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.TestPatch.test_add_node_uuid_invalid_type [0.080318s] ... 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-b5b7de5f-5c93-4727-8294-5916aa2e8d76 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.097790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_target.TestListVolumeTargets.test_collection_links [0.046295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd55eed2-486a-4d84-894c-47ac9eaabb43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "14c1ee01-1eab-486d-82f5-23176398a205", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/14c1ee01-1eab-486d-82f5-23176398a205", "rel": "self"}, {"href": "http://localhost/volume/targets/14c1ee01-1eab-486d-82f5-23176398a205", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "629e83e5-4dbb-4b84-8f39-9ad4078c0e0c", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/629e83e5-4dbb-4b84-8f39-9ad4078c0e0c", "rel": "self"}, {"href": "http://localhost/volume/targets/629e83e5-4dbb-4b84-8f39-9ad4078c0e0c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8ca293e1-9908-495e-ac81-b1b59c614284", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8ca293e1-9908-495e-ac81-b1b59c614284", "rel": "self"}, {"href": "http://localhost/volume/targets/8ca293e1-9908-495e-ac81-b1b59c614284", "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=8ca293e1-9908-495e-ac81-b1b59c614284"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.098434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c6025fe-0d9e-46da-9096-b6dae16f43fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "1c6c2417-1638-40f8-bb8d-e845bde5d082", "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_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.041025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36f65018-fcc6-4325-917d-45d5d0951c0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "90905342-f9f9-4480-bc47-a685305938e4", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/90905342-f9f9-4480-bc47-a685305938e4", "rel": "self"}, {"href": "http://localhost/volume/targets/90905342-f9f9-4480-bc47-a685305938e4", "rel": "bookmark"}]}, {"uuid": "f1961309-646d-477c-b95c-e53923fce592", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/f1961309-646d-477c-b95c-e53923fce592", "rel": "self"}, {"href": "http://localhost/volume/targets/f1961309-646d-477c-b95c-e53923fce592", "rel": "bookmark"}]}, {"uuid": "25e57843-7932-42b9-82b7-6f3374954877", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/25e57843-7932-42b9-82b7-6f3374954877", "rel": "self"}, {"href": "http://localhost/volume/targets/25e57843-7932-42b9-82b7-6f3374954877", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=25e57843-7932-42b9-82b7-6f3374954877"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.095782s] ... 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-8e65e8c4-f05b-4f43-9ffb-322c3829fbe6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.572131+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"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.051932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f83ca131-1fd1-4dcd-bed9-0fa76d8fdf86 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "61ca6367-31a9-4ea5-b7f5-2a09c7e70400", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/61ca6367-31a9-4ea5-b7f5-2a09c7e70400", "rel": "self"}, {"href": "http://localhost/volume/targets/61ca6367-31a9-4ea5-b7f5-2a09c7e70400", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8e84355e-95b0-41cf-9628-39cf5b74f617", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8e84355e-95b0-41cf-9628-39cf5b74f617", "rel": "self"}, {"href": "http://localhost/volume/targets/8e84355e-95b0-41cf-9628-39cf5b74f617", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "027bc369-e453-4d65-a71e-e27b4e5bade0", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/027bc369-e453-4d65-a71e-e27b4e5bade0", "rel": "self"}, {"href": "http://localhost/volume/targets/027bc369-e453-4d65-a71e-e27b4e5bade0", "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=027bc369-e453-4d65-a71e-e27b4e5bade0"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.156157s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_010_nodes_get_other_admin [0.136050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4918f48e-6b14-456d-82c6-dbaa533b8014 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "4cf50fde-10a5-4db9-89db-3bfeb6c00bff", "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_volume_target.TestListVolumeTargets.test_collection_links_detail [0.052279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ca0f197-85a2-4968-8049-cd70483484cb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "1cd66031-89de-4deb-b82f-5bd464510618", "created_at": "2025-05-30T17:32:17.675191+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/1cd66031-89de-4deb-b82f-5bd464510618", "rel": "self"}, {"href": "http://localhost/volume/targets/1cd66031-89de-4deb-b82f-5bd464510618", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "cebe159b-1d7b-4f26-9c3c-1f9773606ff5", "created_at": "2025-05-30T17:32:17.675901+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/cebe159b-1d7b-4f26-9c3c-1f9773606ff5", "rel": "self"}, {"href": "http://localhost/volume/targets/cebe159b-1d7b-4f26-9c3c-1f9773606ff5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0a71483c-28ba-4bed-9f09-3d03c38d3473", "created_at": "2025-05-30T17:32:17.676615+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/0a71483c-28ba-4bed-9f09-3d03c38d3473", "rel": "self"}, {"href": "http://localhost/volume/targets/0a71483c-28ba-4bed-9f09-3d03c38d3473", "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=0a71483c-28ba-4bed-9f09-3d03c38d3473"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.096692s] ... 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-55988bb9-2e0f-48ac-9ccc-89fea2d081ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. 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_011_nodes_detail_get_admin [0.066592s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-984fce99-cfe2-400f-8e6e-c6764a154ee3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:17.721749+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-30T17:32:17.722725+00:00", "updated_at": "2025-05-30T17:32:17.726089+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": "db7fd9bc-6f8e-4365-a7cc-1a3befa6adc9", "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": "db7fd9bc-6f8e-4365-a7cc-1a3befa6adc9", "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-30T17:32:17.739292+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_volume_target.TestListVolumeTargets.test_detail [0.063824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a027641d-3d6a-4735-8f33-177b6b058881 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.745492+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"}]} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.089437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.078584s] ... 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-a7cf7bd5-c7a4-4f36-b1d4-651a479ca15f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.060003s] ... 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-01ef7977-b5c6-4e6c-bbc9-f0eae86e591a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.111931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-20ca45ab-cac8-41a3-8120-361e0803fe1c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.117158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.066055s] ... 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-761d4099-aa8f-45dc-9ac0-9d395fdc4deb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.133791s] ... 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-b0f40e0e-9f9f-406a-aae3-e9444f36a2e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.847161+00:00", "updated_at": "2025-05-30T17:32:17.849895+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-9d6b158d-1d63-422e-8c45-f4237aea14cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.847161+00:00", "updated_at": "2025-05-30T17:32:17.849895+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"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.085754s] ... 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-f965a8f0-4a1e-40c6-b04e-51d44ceb6e61 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:17.965930+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"}]} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.105373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_013_nodes_detail_get_observer [0.139783s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81ac8d9e-ae70-40bd-b752-d01c4d2763b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:17.948201+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-30T17:32:17.949262+00:00", "updated_at": "2025-05-30T17:32:17.958868+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": "f3d4e493-ec2d-48f2-8604-f4c1cdc0f674", "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": "f3d4e493-ec2d-48f2-8604-f4c1cdc0f674", "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-30T17:32:17.983009+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.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.071241s] ... 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-61af3335-29e7-4da7-8d8f-26bae8538e73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.063068s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80dbd4ff-9445-46ff-9f43-2b9e2395daed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.072491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80d77050-33ec-4cac-8780-821aa2287a49 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:18.045920+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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.092608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.087490s] ... 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-0ab17528-0b15-4abe-8442-8c2c84dbb601 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_target.TestListVolumeTargets.test_detail_invalid_api_version [0.063645s] ... 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_015_nodes_node_ident_get_member [0.071904s] ... 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-10796879-302c-4d2d-9f5a-dc2fbaca3a9f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.081985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.059381s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4152fa0a-e675-43db-9340-8532c9ee1e65 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.079458s] ... 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-266745ca-e286-4c7b-8999-f02ca98ba3a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.055416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fdd53881-5fdb-4b96-8bbb-4cbe0bf15bc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.110065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-824a36b5-6fbb-4ddb-b055-3316b90cc0ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:18.200100+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.TestPatch.test_replace_connector_id_already_exist [0.087134s] ... 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-72d2c5ec-ef70-4740-a7ad-23ed6f944576 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.103390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.088065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53b025a8-6243-4bc9-923d-c22c3ed15260 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "9def57fb-759b-4cb6-b453-fd0f5b911e76", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9def57fb-759b-4cb6-b453-fd0f5b911e76", "rel": "self"}, {"href": "http://localhost/volume/targets/9def57fb-759b-4cb6-b453-fd0f5b911e76", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f1e33f12-d8ea-47aa-a05d-4a0ea170ff82", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f1e33f12-d8ea-47aa-a05d-4a0ea170ff82", "rel": "self"}, {"href": "http://localhost/volume/targets/f1e33f12-d8ea-47aa-a05d-4a0ea170ff82", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "be97228d-e04c-4164-93fd-82f43ea33122", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/be97228d-e04c-4164-93fd-82f43ea33122", "rel": "self"}, {"href": "http://localhost/volume/targets/be97228d-e04c-4164-93fd-82f43ea33122", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.090541s] ... 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-8e9615e5-c9e4-4e47-8250-c2d9d6c1a723 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_017_nodes_node_ident_patch_admin [0.109439s] ... 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-b7e9a05e-6616-496e-9496-08b18a6d08e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.116789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.085122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2faa5249-1f63-4a93-99cc-a04cde8f0085 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "88b0176b-a100-46a6-803d-91b3bc7e4261", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/88b0176b-a100-46a6-803d-91b3bc7e4261", "rel": "self"}, {"href": "http://localhost/volume/targets/88b0176b-a100-46a6-803d-91b3bc7e4261", "rel": "bookmark"}]}, {"uuid": "f52e3787-3866-4448-8aef-f76c05a5e9ab", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/f52e3787-3866-4448-8aef-f76c05a5e9ab", "rel": "self"}, {"href": "http://localhost/volume/targets/f52e3787-3866-4448-8aef-f76c05a5e9ab", "rel": "bookmark"}]}, {"uuid": "9899c4e7-a77f-443e-a21e-adca9e2f571b", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/9899c4e7-a77f-443e-a21e-adca9e2f571b", "rel": "self"}, {"href": "http://localhost/volume/targets/9899c4e7-a77f-443e-a21e-adca9e2f571b", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.105036s] ... 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-999b1aea-a88e-4188-9117-174fc453fa6a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:18.428604+00:00", "updated_at": "2025-05-30T17:32:18.431085+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"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.092102s] ... 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-e0c53cf7-046f-4ec5-842f-b48f51735b7b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"boot_index": 0, "links": [{"href": "http://localhost/v1/volume/targets/a9d6ff48-bf45-4828-aa8e-011179baa9c1", "rel": "self"}, {"href": "http://localhost/volume/targets/a9d6ff48-bf45-4828-aa8e-011179baa9c1", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/0e4e9394-0f3e-410a-89d8-3113d490bdfb", "rel": "self"}, {"href": "http://localhost/volume/targets/0e4e9394-0f3e-410a-89d8-3113d490bdfb", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=0e4e9394-0f3e-410a-89d8-3113d490bdfb"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.150256s] ... 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-bca803ee-b513-4509-8ce7-349af0b36da0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_connector.TestPatch.test_replace_node_id [0.083441s] ... 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-6309a96c-d2a3-49cb-ba6a-015a277e4efe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.072195s] ... 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-835f3eb9-25ce-4c9d-9f57-daa5c345c07c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.093902s] ... 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-9e78ea35-6e8d-46ac-93a4-65b0a919a825 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_connector.TestPatch.test_replace_node_uuid [0.092751s] ... 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-47973bbe-9093-4991-b007-acbfb217bd1a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:18.613975+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_volume_target.TestListVolumeTargets.test_get_one [0.077830s] ... 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-417e9dff-82b7-4236-b64c-a3d9a6539acf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:18.648606+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_020_nodes_node_ident_delete_admin [0.098929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3ddef2ac-494c-40cb-ad14-e74a2f261b32 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.069344s] ... 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-8bf064b1-2a71-4665-ab54-ffa1f7689715 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.082545s] ... 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-d0f4d681-3775-43cf-8bdd-ff621606f4d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.074786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a0e03261-5cfe-4955-abea-ef61794b334e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_connector.TestPatch.test_replace_non_existent_node_uuid [0.083924s] ... 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-c8344abd-1232-45d4-aa57-c712e9ed5d79 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_022_nodes_node_ident_delete_observer [0.092091s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-57d785ab-d2a3-4615-ab07-078b1a873166 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.528369s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.102310s] ... 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-40410db0-16e1-4cea-9865-adf0b42c5815 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:18.877088+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"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.066906s] ... 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-3f900e50-4d82-444d-b0ea-c8b99777b86d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.064526s] ... 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-7277f89c-b963-4dd3-b289-d6b2ba3e2ce1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_connector.TestPatch.test_update_byid [0.096443s] ... 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-d1ba7549-6063-4d3e-9d38-c4ffa780a33f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:18.987262+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"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.131040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.070970s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.080987s] ... 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-a405c800-5630-42eb-be5d-2de20ca3950b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.130362s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_026_nodes_maintenance_put_admin [0.082004s] ... 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-713b0597-4ff0-4f57-b87e-9192001b1959 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.433529s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.068361s] ... 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-dc337dee-0116-4de7-9d61-a98c460949df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_target.TestListVolumeTargets.test_links [0.124347s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/f5976d26-b9da-4dbf-a060-7fd9e315d0d5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ff2d5fd-3f24-4e45-a2df-00ee0f767d0f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "created_at": "2025-05-30T17:32:19.261454+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/f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "rel": "self"}, {"href": "http://localhost/volume/targets/f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/f5976d26-b9da-4dbf-a060-7fd9e315d0d5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31576705-8b0e-48ac-8529-773df5788899 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "created_at": "2025-05-30T17:32:19.261454+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/f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "rel": "self"}, {"href": "http://localhost/volume/targets/f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/targets/f5976d26-b9da-4dbf-a060-7fd9e315d0d5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d50e16df-a7fe-4558-9d42-5186834e9890 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "created_at": "2025-05-30T17:32:19.261454+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/f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "rel": "self"}, {"href": "http://localhost/volume/targets/f5976d26-b9da-4dbf-a060-7fd9e315d0d5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.147152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.312194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/2e8a24a7-2f9d-4ed8-aef5-0deb95e95ca6 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-85771f1c-5f79-47f6-8fde-a0757f5da59e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 2e8a24a7-2f9d-4ed8-aef5-0deb95e95ca6 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.107111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4624a67d-11e6-4d89-a3e1-7b156e043cc5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "3bb8a224-3f2d-4cbc-a591-b33279c947c9", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3bb8a224-3f2d-4cbc-a591-b33279c947c9", "rel": "self"}, {"href": "http://localhost/volume/targets/3bb8a224-3f2d-4cbc-a591-b33279c947c9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "14608f1d-933f-4328-aeb1-9a226f7d9ef4", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/14608f1d-933f-4328-aeb1-9a226f7d9ef4", "rel": "self"}, {"href": "http://localhost/volume/targets/14608f1d-933f-4328-aeb1-9a226f7d9ef4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "27e4a51f-817e-48ac-8a58-3e205b1fa30a", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/27e4a51f-817e-48ac-8a58-3e205b1fa30a", "rel": "self"}, {"href": "http://localhost/volume/targets/27e4a51f-817e-48ac-8a58-3e205b1fa30a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "4cc713cd-6fa0-4d88-bec1-7cc0c46ae7cc", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/4cc713cd-6fa0-4d88-bec1-7cc0c46ae7cc", "rel": "self"}, {"href": "http://localhost/volume/targets/4cc713cd-6fa0-4d88-bec1-7cc0c46ae7cc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9a1cdece-8f34-4009-9954-59ff71aefa24", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9a1cdece-8f34-4009-9954-59ff71aefa24", "rel": "self"}, {"href": "http://localhost/volume/targets/9a1cdece-8f34-4009-9954-59ff71aefa24", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.048805s] ... 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-6a0c3690-30a6-423e-981c-1c04e918157c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-fed9a7a5-97ee-4f62-8074-c3a6feebabeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"} {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.138950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.078749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68a6cecb-ce48-4d01-9605-b925230f855f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.055226s] ... 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-cfb324e3-462e-42c1-99e1-a815902c84d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:19.510889+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-e12b5fc9-2543-4d53-8a35-caf097a46922 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:19.510889+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"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.042722s] ... 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-3f64d175-892b-4def-ac9c-d916c2d15d26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.100666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.067936s] ... 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.TestPost.test_create_volume_target_generate_uuid [0.070197s] ... 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/7d31d5ef-e244-4332-a368-609fb08ca435 Openstack-Request-Id: req-1be87753-123a-411b-958a-2c7fa10c0831 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7d31d5ef-e244-4332-a368-609fb08ca435", "created_at": "2025-05-30T17:32:19.616129+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/7d31d5ef-e244-4332-a368-609fb08ca435", "rel": "self"}, {"href": "http://localhost/volume/targets/7d31d5ef-e244-4332-a368-609fb08ca435", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/7d31d5ef-e244-4332-a368-609fb08ca435 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ac5cd4d-5022-4902-b8a3-cf1a77e126b5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7d31d5ef-e244-4332-a368-609fb08ca435", "created_at": "2025-05-30T17:32:19.616129+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/7d31d5ef-e244-4332-a368-609fb08ca435", "rel": "self"}, {"href": "http://localhost/volume/targets/7d31d5ef-e244-4332-a368-609fb08ca435", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.082256s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04a76cee-9c81-4fa3-8686-a246f5aa85b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "30b608c2-4fd0-4363-95a4-e1b8d68ca336", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/30b608c2-4fd0-4363-95a4-e1b8d68ca336", "rel": "self"}, {"href": "http://localhost/volume/targets/30b608c2-4fd0-4363-95a4-e1b8d68ca336", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "36cc72c6-67d2-44be-804c-195674b15f93", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/36cc72c6-67d2-44be-804c-195674b15f93", "rel": "self"}, {"href": "http://localhost/volume/targets/36cc72c6-67d2-44be-804c-195674b15f93", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "82610328-3638-437f-af01-f02234728bc7", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/82610328-3638-437f-af01-f02234728bc7", "rel": "self"}, {"href": "http://localhost/volume/targets/82610328-3638-437f-af01-f02234728bc7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.044121s] ... 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\": \"\"}"} {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.109341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.039799s] ... 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-a0cdc290-7431-411b-a2de-97a7d25d5583 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.474166s] ... 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-b5af6227-7e09-4ad0-aa39-2e801e7225b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.082296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2431c8a1-38f9-4445-8246-63d32517822d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-d7db36e5-8db7-4ec3-8fdb-36da27d003cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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-91b4060c-dec1-4a14-9ea8-8264c0c5172a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.039018s] ... 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-cd2ed47c-b3e3-4207-8eff-01bfcee4207d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.032893s] ... 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-e53de329-8dd7-403a-8a6a-107c076fba8a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.066387s] ... 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-c52b1359-739a-4d80-9e9e-12cedb31d34f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.125947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.030957s] ... 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-6e3b8194-d417-4cd2-9bcc-37b94f3cae35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.035093s] ... 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-6adfabb7-7265-4654-9718-8b835b1ea236 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_030_nodes_maintenance_delete_member [0.075170s] ... 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-0de0b01f-d474-42f6-8c41-db05acb9706a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.053971s] ... 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-787bc5fc-baac-434a-bb29-21fe132bf4b6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:19.896397+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-f4a94bc6-62b4-46ef-b05c-8a2365f2cc85 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:19.896397+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"} {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.122318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_031_nodes_maintenance_delete_observer [0.067981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9b6a4731-791f-441f-ba67-d92c77ec4412 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.056124s] ... 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-cbc3cacc-bd67-4d21-ba2c-87536185d9f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:19.968092+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_032_nodes_management_boot_device_put_admin [0.062823s] ... 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-ea28113f-8f9d-43f8-a585-351b3cfd85db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_servicewait_timeouts [0.132323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.067246s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/5642a87d-a95e-4229-a332-42ab3eb98dca WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-574007d8-9831-4bfd-afe6-eb2c6d2d412a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5642a87d-a95e-4229-a332-42ab3eb98dca could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.079879s] ... 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-7f5a9a62-387d-45c8-b2a0-28b81809d6a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.190992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e508e86a-c58a-4c4e-b45d-725c6d09336d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node [0.038416s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.021443s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.062145s] ... 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-0ad74503-5940-4bb0-912a-78ff40e73291 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.081120s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/bf5ce459-5c95-44d6-a47d-1d582d75877d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2ed81d3a-1ba6-4a1c-a6d8-aef4b345c3d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node bf5ce459-5c95-44d6-a47d-1d582d75877d could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.100406s] ... 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-cfe3f8c8-bb5c-4b2a-8bd3-84794e01b0b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.062124s] ... 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-e05f7aef-9550-4749-9ffd-15d7bb7f2fea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.099286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.071446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/56834f90-f19e-4d35-8ff7-015461292682 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8ef02a5c-aebc-49c3-acf3-0857852fdbc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 56834f90-f19e-4d35-8ff7-015461292682 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.064787s] ... 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-c2ea7853-f822-4c53-97ea-cdb599522a8f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.100653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a7525e13-8a95-41f5-84a8-dbcae049f9da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api [0.074792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b507974-453b-4723-b4ed-aa5bccbcb1ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.99"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.107936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_037_nodes_management_boot_device_get_observer [0.081534s] ... 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-b7de2795-c640-4364-a4e1-f0f86612e2b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.064393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24a83343-ab29-429e-b464-840e88f105ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.99"}, "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.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.110801s] ... 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-0e27d531-3cb7-46e9-b397-f5cdd55edcb0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.083929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_038_nodes_management_boot_device_supported_get_admin [0.082362s] ... 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-6068f1bf-2aea-4a42-999c-6824ca5bbbf7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.071206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4174b2ff-9c65-4598-9bc9-b780f3586243 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.99"}, "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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.055378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.json 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_039_nodes_management_boot_device_supported_get_member [0.069253s] ... 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-b1f416e3-f567-455b-8aa9-1f85e3048da7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.109526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8da7721d-dfc4-4743-9b96-b08d103318f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.148170s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_040_nodes_management_boot_device_supported_get_observer [0.068086s] ... 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-82d21d46-8732-433b-a634-3a2340ba65a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.082993s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.xml WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.100789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ead1f0d3-6cdb-4b11-b4e6-22d033d17558 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_041_nodes_management_inject_nmi_put_admin [0.063888s] ... 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-58df1103-64c8-4e73-92f3-d9b864a27866 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.094900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-17bea827-d9d8-4723-b971-7abfc55cfb90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_042_nodes_management_inject_nmi_put_member [0.086472s] ... 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-9abfca55-d708-4fc4-b7ba-8ccbfa4a49ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.077015s] ... 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-112e318e-4fc8-4ef0-a1ee-9e83c9746d76 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.101261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-72030595-d32e-4dfd-a3a9-b93f0be6d036 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_044_nodes_states_get_admin [0.073496s] ... 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-413242d8-5c99-4222-9ac4-2faaa78d15e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.184072s] ... 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-444b90c2-8d74-45d6-824b-30c4eac81e40 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.094527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8f4786b6-9136-4f47-a707-163b59a3b1d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_045_nodes_states_get_member [0.096583s] ... 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-9293e55f-67b6-4122-8f21-6ea41902f0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.118567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-64d6a47f-60bd-4e14-9419-472997d505d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.472976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_046_nodes_states_get_observer [0.097942s] ... 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-8c5c6280-bf4a-4582-9647-4a5257481e09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.174025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0fee1b80-79c5-4bd0-a339-13194199b3ae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.096293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.171548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa8e4acd-53a9-4936-988c-799e4211dd4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.109513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.181196s] ... 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-ac83e2e3-d5bb-415b-b802-85a1d01f2037 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.202569s] ... 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-1f23a1d4-cd2d-4ec2-a131-e4cedd235636 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.206681s] ... 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-640699fa-aba3-4696-b6a8-23a85f98b64b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.175095s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-09aa3173-ab60-4122-bba4-faef4c747309 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_048_nodes_states_power_put_member [0.183594s] ... 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-47f4fcdc-f1ea-4a40-9ccf-a92c84b37238 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.092285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1ec94f7-ca4a-47b9-a7a9-401845d7a5b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:21.436784+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.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.109705s] ... 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-28bba5e6-fd77-4863-898d-adb4cdad28b6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.105117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dde2ca9a-66f4-46af-a491-22deaf5a6ace X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:21.543528+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.168052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-17f3f18e-9055-4e9b-bb0e-32ca5233cbe4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_050_nodes_states_boot_mode_put_admin [0.133975s] ... 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-f78f0520-2847-42ee-ac6a-08f70997bbec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_reader [0.153367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02254b3d-111c-4def-92c1-42ec5de31007 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:21.656574+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.117534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7778f7fb-3a56-4561-8800-60e84fe015d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "5689f573-1e58-4c40-894a-e5cb86549ea7", "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.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.113432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-763d152a-8c93-4bef-8346-fd00af436048 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "4a34b4b7-c028-42bd-9363-6806eba97c2a", "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.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_node_other_admin ... SKIPPED: Not implemented yet {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.161589s] ... 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-7ba10a40-8f56-4111-b28b-6d524bc6fc98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.071137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4de66fc1-7680-4c28-93b0-9df09bc88f68 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "f50db1d7-822c-415b-9aa7-53b09d9ab3ae", "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.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [0.751665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev142/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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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() {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.067638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-541cfe72-1248-48b4-80da-81d8bc3ab937 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "3925672c-df89-4021-af27-2905b7028929", "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.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.190373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc6c39a5-ffe7-463a-a60e-45162aff3163 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "34e034dc-3ee4-4eec-8b52-f7a3f80b42ee", "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.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.065865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99bf4c70-54d0-47df-b25e-94320700832f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "de93cad0-5adc-4268-9055-83146b5baf93", "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_052_nodes_states_boot_mode_put_observer [0.201509s] ... 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-240538ac-88f2-46a6-baf1-ab62b53fc43e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.150877s] ... ok 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.093610s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-191bd2c4-6cc6-44e5-b648-745b542a2794 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "ce231983-f69a-4f37-b258-4e11090d12e0", "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.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.066942s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7a7a066-3ad9-4925-8dca-63108cbab462 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "d2bb8772-0cb0-45dc-a81f-2b22d6fcc3e5", "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.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.172217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d7d8b88-cc16-4c68-8bbd-72bc9b370622 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "ba038535-c932-40f2-8a13-4adc8b85aba5", "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"}]}]} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.118062s] ... ok 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_053_nodes_states_secure_boot_put_admin [0.186638s] ... 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-ed611a21-a9e2-41a2-8f95-4aa951504252 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.066323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0291423a-3316-488c-ba74-b766e64377ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "22fceecd-9676-4a7f-85b3-88a5a1f8fc16", "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.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.066338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f8a7e88-993d-43b6-97e7-d2a99543af1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": []} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_get_service_project [0.161748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-265e26e6-1033-4e05-ba1e-2634e9c3fcc7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "8373f1a0-c18a-465b-89f2-b9cefdd26bd3", "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"}]}]} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.139744s] ... ok 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_054_nodes_states_secure_boot_put_member [0.166811s] ... 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-d198685a-0a9c-4620-ade4-6a25a86fd3fc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.078954s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99790cd3-d7e2-413f-a41a-89c5968ebe9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-30T17:32:22.411735+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"}]} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [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( /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.077293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1b5ce1c9-03b9-430e-931d-d70260c6a676 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1fcf2474-a1bb-4dfb-b4ac-141396657210 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1b5ce1c9-03b9-430e-931d-d70260c6a676 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [0.174253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0d02b53-3168-4f0e-9833-2d72707668a0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.078591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0125fa7-33c0-4edb-b514-8d1c38c5019f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-30T17:32:22.575807+00:00", "updated_at": "2025-05-30T17:32:22.581414+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": "55f76621-4d5d-44ab-8584-446a9fe55f61", "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": "55f76621-4d5d-44ab-8584-446a9fe55f61", "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"}]} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_remove_vif_failed [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( /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_055_nodes_states_secure_boot_put_observer [0.182229s] ... 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-939b81ec-c68d-4917-b5e6-ef8d4f6d6647 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.065783s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/9ff5881e-215b-44b8-b29b-aee9e3bde302 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bcb2c38f-9034-410f-870c-74d1112718e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 9ff5881e-215b-44b8-b29b-aee9e3bde302 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.108976s] ... ok 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.171308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f509d5d-b900-429d-b45b-537a3e3903aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_third_party_admin_cant_get_node [0.074678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/c50aeaa8-1bd7-4d4e-a6c1-7c561fdee72d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3be2e8e7-9234-471e-bbee-57c96175cd01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node c50aeaa8-1bd7-4d4e-a6c1-7c561fdee72d could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.180653s] ... 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-b7d2b238-5b27-4529-b71f-ba3e13ac5dc3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.110952s] ... ok 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.087021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-141fb4d4-07ce-4661-98c9-aede96f41d4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-30T17:32:22.798922+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.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_get_other_admin ... SKIPPED: Not implemented yet {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.073769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.108300s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8c98a79-1ed6-4c45-9d1a-7bbef157e9fc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-30T17:32:22.906997+00:00", "updated_at": "2025-05-30T17:32:22.931906+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": "3ca3a49a-f1fe-4db7-8cbd-479342be8a1c", "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": "3ca3a49a-f1fe-4db7-8cbd-479342be8a1c", "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_057_nodes_states_provision_put_member [0.169534s] ... 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-1f8bc801-b100-4aa7-bf3c-14b5a3d920be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.076029s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.083675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7942f2b9-2a95-4562-990b-78a1309f0763 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-30T17:32:22.996571+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-30T17:32:23.007595+00:00", "updated_at": "2025-05-30T17:32:23.014054+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": "e7f4ca9c-d8f6-4271-9480-41a9597cd659", "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": "e7f4ca9c-d8f6-4271-9480-41a9597cd659", "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.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.179020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb8f5a55-0a0b-4297-a0eb-189f274767b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:22.963144+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-30T17:32:22.965942+00:00", "updated_at": "2025-05-30T17:32:22.973823+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": "fb981bed-ba1f-4bdd-8010-c6786f7837ba", "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": "fb981bed-ba1f-4bdd-8010-c6786f7837ba", "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-30T17:32:23.013279+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.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.075030s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.076536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f84203a5-18c9-427f-a329-c4b7aa97900b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-30T17:32:23.088818+00:00", "updated_at": "2025-05-30T17:32:23.095507+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": "df49b2fc-a0b5-4ecb-b7b4-8ddc5b5b65be", "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": "df49b2fc-a0b5-4ecb-b7b4-8ddc5b5b65be", "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_058_nodes_states_provision_put_observer [0.166616s] ... 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-d941e1ce-17d6-4646-bcfa-a23181c0babe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.082547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3e31fff-f7ed-4ebf-bf29-1c39a673c106 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": []} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.172234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e15f9657-875b-4f0a-8ca2-878b5b4a7182 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:23.137250+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-30T17:32:23.138233+00:00", "updated_at": "2025-05-30T17:32:23.147214+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": "994a8eb2-a3d2-4ece-91ff-74d938363a1c", "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": "994a8eb2-a3d2-4ece-91ff-74d938363a1c", "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-30T17:32:23.187572+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.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.175646s] ... 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-6eb0a305-9d95-4a63-9858-1167c7b999ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_admin_can_patch_node_extra [0.123084s] ... 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-e4ad3847-7888-465f-a227-bbf746517e72 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.155856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-824cd7f2-9cb8-4f58-b40a-8d2fccb05376 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:23.315337+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-30T17:32:23.316352+00:00", "updated_at": "2025-05-30T17:32:23.333455+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": "1eaacd82-dffe-413e-b5bd-9e73bf4d530b", "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": "1eaacd82-dffe-413e-b5bd-9e73bf4d530b", "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-30T17:32:23.359549+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.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.102216s] ... 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-6b037ee7-cfad-4e16-934b-bfc75b58f3ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.141773s] ... 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-15cd962f-783d-41ea-a299-4c6948a4cc99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.401433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_owner_member_can_patch_node_extra [0.111022s] ... 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-3de28e2e-4fd4-4e2b-9e14-a04faa30f812 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.150833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b6708a3-114a-4f5e-8126-32510a7ba3fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:23.451061+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-30T17:32:23.461939+00:00", "updated_at": "2025-05-30T17:32:23.465237+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": "00b59f35-4c5d-409a-87d3-7830766c797c", "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": "00b59f35-4c5d-409a-87d3-7830766c797c", "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-30T17:32:23.507002+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.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.136577s] ... 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-1f1b52aa-5e2a-465b-adcc-3c335a0f5863 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.074659s] ... 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-43afd7f7-4200-4520-8da5-d7ff3d8ebb84 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.141285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.122974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f65cd8b-a2c4-4d27-9951-819311626181 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:23.599063+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.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.110924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_062_nodes_states_console_get_admin [0.130774s] ... 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-3b951e1b-4554-465a-b243-9ebee979b5a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.134406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0242931-cef9-4d4a-9717-6f2316c99a6c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:23.732317+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.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.089272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_063_nodes_states_console_get_member [0.138564s] ... 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-5733b0b4-aff2-452b-8c09-43c0cbce0613 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [0.085053s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_admin_can_patch_node_extra [0.317867s] ... 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-8df21fef-9015-406e-853f-4732b63ef75a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.141946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2f3a132-f469-4ad9-9041-e59abf5ea81c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-30T17:32:23.866889+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.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_get_observer [0.137003s] ... 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-27a77411-6f65-48b9-a89f-8168fbdeb06a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.095975s] ... 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-0f001b05-47ea-4a5d-aa68-eed738cad57d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.158835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.153957s] ... 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-6a9ebc89-3c14-4efe-81ff-05aed9654ddc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_lessee_member_can_patch_node_extra [0.114055s] ... 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-e4e0ad8d-6249-4875-a50a-be24e5d01585 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_admin [0.138124s] ... 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-fb5eb726-0f99-4826-9661-f030314799a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.099237s] ... 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-f4697439-f73d-433c-a1e1-1e0ca174c9f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_lessee_reader_cannot_patch_node_extra [0.077693s] ... 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-183a5971-5c88-45b2-913c-f9258ad442d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.165459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_066_nodes_states_console_put_member [0.135477s] ... 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-f325991e-b27f-4788-a611-cab6d93dd85c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.067683s] ... 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-9d0f2be0-4d80-415a-8fd0-8ecdc5b75206 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.110714s] ... 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-429f0afa-0fd5-4474-84e4-055c7b204997 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_states_console_put_observer [0.166224s] ... 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-6041e326-8909-4d98-bec1-91487cb6718c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.205403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.266323s] ... 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-d67a31ec-3ea4-4325-93d6-89d057580c83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.116949s] ... 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-706c7aa3-d296-48cd-8ecf-4e8db384076b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_node_ident_patch_member [0.112219s] ... 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-54a46f77-56b5-43c8-af7b-d865c8718860 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.142792s] ... 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-8694e25c-71ba-4224-91d1-304709500b30 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.162476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.117213s] ... 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-755862b6-3eae-47ce-86f1-dc56a00ce85e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.132825s] ... 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-78179070-4ad1-4505-a7e1-8a55743202c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.132841s] ... 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-88a7fad3-29a2-4afb-bb34-eb4d3eae066c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.117160s] ... 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-d5cf5bdd-bd9b-441c-92fe-dd200f8bb057 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.154136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_node_ident_patch_service_project [0.094813s] ... 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-033f7f6f-b6bb-4d25-b423-0c1688436b03 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.125682s] ... 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-159cd996-ebcf-4766-bafc-2887bc890af2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.096024s] ... 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-6819f337-6b09-4183-9de4-fadf679701f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.069366s] ... 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-a71f11d1-3587-4754-9e64-179d93ea8d1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_lessee [0.069083s] ... 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-a2ad58b0-cd32-4c43-b3a0-ced9bd93dca7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.056208s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-99b44914-fe4c-463d-94be-ce9fd93b7076 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.167382s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_071_nodes_vendor_passthru_get_admin [0.129746s] ... 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-cd425fcc-6baa-464b-9125-d6de1186770f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_lessee_admin_cannot_change_owner [0.080122s] ... 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-5b099de0-672c-43f0-b82c-2d19c6c59e8a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.087512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a856604b-7b62-4a8d-b26b-8513b19dcc44 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.059258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa963df2-254b-4728-8d7f-c9d4652cfb94 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.080757s] ... 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-220b7b3b-c1c0-4867-80a7-9044543c9244 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_072_nodes_vendor_passthru_get_member [0.124482s] ... 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-d9af73cd-74e8-4c47-896e-c2844c9b6d19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.174055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.067112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0503ea3b-3994-455a-afe0-f8460309cd6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.057106s] ... 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-9c0a8425-7729-46c0-abf3-9782b14f12bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.125483s] ... 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-257a6bee-3aa8-4634-b798-5172b5364d09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.057740s] ... 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-0ad6c2e2-387b-4547-a87a-f14bf06def87 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.149772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.065673s] ... 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-8610793a-9a5d-4b58-961c-f5b541e776c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.118978s] ... 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-b97789d8-7217-49ff-8c63-4bba926f407e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.061362s] ... 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-229c941b-87da-4d2f-8f09-f6192e0388c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.079905s] ... 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-cc513d22-1bf7-436a-92b6-80589b67dc83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.060999s] ... 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-c7d01498-945b-4913-a230-1f628ee4ac2e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.079338s] ... 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-1280b265-37da-405b-b62d-6f8ef9c93fd9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.200782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.057676s] ... 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-bbc9ba25-aaec-4dee-a8c5-c2d027ef892f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_maintenance_put_member [0.056808s] ... 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-38cf9fd7-89ce-43f3-9f0f-65b199bd8c28 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.117075s] ... 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-dfb0f00c-009a-4699-a506-1f935aaf4e1d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.501944s] ... 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-78c3631d-330a-40ac-882d-1c00709cd217 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.062559s] ... 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-d993120b-5767-4b4d-8ae0-e0d4df600e0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.160742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.075811s] ... 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-5144051f-407b-4c94-80fc-7f24b08f4ca7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.060350s] ... 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-f1300518-efe6-4600-b27f-ba17b05b0b1d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.133446s] ... 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-11751be7-8d43-424b-b14f-e95adef3d956 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_maintenance_delete_admin [0.099489s] ... 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-d2bd60ca-4246-4ebe-829a-8d1a53caf37e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.062431s] ... 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-ba8cdf57-6b1b-4ea6-b0c6-8cafa91776f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.061651s] ... 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-8bea6856-b250-41d7-bf28-03e34d6dffbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.146897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_maintenance_delete_reader [0.068315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef6ecc2d-a19c-422e-b615-37e049ec8ca5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.077712s] ... 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-35540c56-7030-4162-afb2-2769c49fc4de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.126393s] ... 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-e816b312-5a87-4d6e-8293-234ec9254ffd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.059150s] ... 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-4d3daed8-e46f-4e9c-96b6-d4f425a008ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.072305s] ... 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-2a4404ae-810b-4e1d-84dd-1287b09549d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.059094s] ... 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-31b85d25-05ee-48e7-bb93-3d3543cf84f9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.078091s] ... 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-f781d6c4-0b8b-4180-9c6e-ce43800d01c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.078382s] ... 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-a246fa60-af33-412f-aded-5223432c40d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_076_nodes_vendor_passthru_post_observer [0.207317s] ... 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-7db0c206-1ca4-49fe-93a3-9394faa4d14a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.293631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.109435s] ... 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-ba8adc70-8a44-4337-a19b-2560e81c6042 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.091261s] ... 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-cb2bb3ab-a3d5-4aef-9d8f-b57134b8d45f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.058415s] ... 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-6c74e2a4-5d18-4044-9f1d-8dcdda594601 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.103091s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.110315s] ... 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-bd45c926-0b07-48e1-9d7b-c4acf7759140 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.071782s] ... 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-69281db4-3a3e-4936-89ef-495c8f861bcd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_077_nodes_vendor_passthru_put_admin [0.203353s] ... 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-17d2af32-784d-4e72-859b-17ab53c57eeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.071562s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.109142s] ... 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-12900d77-8b1b-417f-8e9b-7e79b4a3a5b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_management_boot_device_supported_get_admin [0.067221s] ... 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-ef9d03aa-af50-47aa-bd65-538681b72861 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.058470s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.073515s] ... 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-74cab146-c41b-4cad-8c58-cf3cab76929e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.058813s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_management_boot_device_supported_get_member [0.079720s] ... 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-8e2901b0-3c36-4b31-8dbe-e44ca7a56dd4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.151871s] ... 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-3dc665ef-385f-4e78-b335-0cb05b5dd023 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.052875s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.103949s] ... 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-35e48403-a162-4c1a-ad74-bdb511a1d33b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.059232s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.131499s] ... 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-6f1c4a9a-f7d6-4bb3-8367-1273e53d049a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.056406s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_manager_can_patch_node_instance_info [0.102473s] ... 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-6ff0c58f-9ddf-4572-8dd2-54d2ef90bb80 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.166104s] ... 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-8bea5fa1-6056-478d-b09a-184e97bd6a4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.077085s] ... 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-0182c9b5-7616-4291-ab56-ea48c41c429d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.048000s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.064295s] ... 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-67d9476c-af14-42b1-a113-8bd2802629f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.059801s] ... 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-b23f23bf-e976-4826-a8d3-44405e48a126 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.058211s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_lessee_reader_can_patch_node_instance_info [0.069176s] ... 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-f3fd0ad7-4807-4841-808a-3e2351fb1937 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.141769s] ... 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-bb4408b1-89ef-45b0-a7b0-0fdaf64ba2bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.055390s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.088431s] ... 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-62228d20-4fb9-48d4-9bce-25c1b010cfd0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.063139s] ... 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-6f1e92ee-8869-4b16-a996-abf74d88867f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.086805s] ... 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-8c147389-38f1-4cfa-ac46-e21359340e86 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.071969s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e0f1439a-0a15-4291-924f-df9c6fc80cf1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.124026s] ... 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-e9497f9a-861e-45d1-92e3-73209abe7e2f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.123237s] ... ok 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_get_member [0.064082s] ... 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-b99d466e-f4fe-48f5-b083-dcddd1bd942a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_072_owner_admin_can_delete_nodes [0.062387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f711c1c6-71b1-42d4-842d-4caf0c696348 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_get_reader [0.069854s] ... 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-ad0c3f01-3136-4f43-8732-5b8e5e6a9297 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_073_service_cannot_delete_owner_admin_nodes [0.065240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7042461e-b210-464c-9aea-96a1d79d0c9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_082_nodes_vendor_passthru_delete_observer [0.134997s] ... 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-387a0c47-5977-4ff5-806d-2d368e6d42ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.063862s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3fc8d089-1e64-4f94-8c3c-75688e136c4c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_power_put_admin [0.080552s] ... 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-c6c0f744-6a0c-4d89-9845-bfa4d01313a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_power_put_member [0.058759s] ... 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-a2492fb5-abec-452c-ae26-a6750be3f25e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.087161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9c009132-7713-42a1-806e-10e51e84d0d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_admin [0.148013s] ... 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-33f98143-1abe-4b55-a11e-1b2aa9406643 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": ["trait1"]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.058003s] ... 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-f4d9b48f-445e-4efc-8a76-5d03be3f3ac5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_lessee_admin_cannot_delete_nodes [0.082141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a6555620-8fd3-4289-aa92-a2f56d1fad8f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_boot_mode_put_admin [0.076693s] ... 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-3fa58304-ab14-431e-9d39-6275b9f1bce8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_manager_cannot_delete_nodes [0.074946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1d2c8f4a-dd0d-44af-9ad2-dcdc89f4c4a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_member [0.137314s] ... 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-79a16c5d-cb5c-468f-b772-3c5c88369eb5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.474617s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_boot_mode_put_member [0.095421s] ... 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-51b2252a-144a-4e95-b1d4-b568b557b640 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.065673s] ... 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-39209fc4-5a37-49fa-a108-419ca2a8e9bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.078600s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_085_nodes_traits_get_observer [0.134545s] ... 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-1d6281b3-85de-45cf-9f5e-8caf7e05506f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": ["trait1"]} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.069434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.280780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a91ad2e-eb7b-4e8c-a437-a4c7243b309e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_086_nodes_traits_put_admin [0.129042s] ... 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-34c99d16-6dda-4713-a6f4-f98c92bbe25c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.095040s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_admin_can_validate_node [0.071048s] ... 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-6b1fe8a6-02a3-47c8-a83a-7401c6836942 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_secure_boot_put_admin [0.281842s] ... 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-90d25cd0-0807-4ecc-a6b8-378ade7d1724 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_member [0.132713s] ... 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-2c4be96f-0d24-4c63-91f3-7cb45f37895b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.074631s] ... 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-d69a0aca-02c7-4b1a-bc84-a0d61b6b05e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [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( /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_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.074531s] ... 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-685a9813-20c8-4440-a96e-5e1a5899b5de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_lessee_admin_can_validate_node [0.073824s] ... 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-239facdf-298e-47e0-959f-258b87caf8f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.081586s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.074936s] ... 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-5a8d5d17-c2f8-4949-884e-78095e31e516 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_088_nodes_traits_put_observer [0.126635s] ... 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-70f8be31-b622-474b-80c8-16b7b6831e00 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.061588s] ... 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-50a2782a-d351-4263-bea8-f139db0b1834 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.068096s] ... 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-56c92f9c-92f8-4bfc-81ef-68523308ce16 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.096871s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.099797s] ... 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-30b9079c-eaed-4ee3-8604-dfcff3fa0cd0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.064193s] ... 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-132cd3f4-743f-438f-9564-6a414184b815 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_089_nodes_traits_delete_admin [0.128353s] ... 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-dcc29416-1936-425f-ae85-9d8eef04fb0f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.083093s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.074283s] ... 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-b96f0633-4525-4d4b-8a0a-b5e6fc8a83fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.070685s] ... 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-e2537774-78c9-409f-aa67-765b66283270 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_states_provision_put_reader [0.070305s] ... 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-377b2f06-59a3-4a31-a736-955cdeba4f0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.083228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_090_nodes_traits_delete_member [0.139461s] ... 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-d001b787-1f6a-4547-acf5-eb760c787e1a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.072237s] ... 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-f2549f9c-024e-4415-8296-60c7c5e32844 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_states_provision_put_service [0.060369s] ... 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-4b9dcc2b-0d35-4e80-85e8-1bf84ca7610e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.069535s] ... 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-8b3e686b-04d5-4b77-8fea-67d69d7a0bfa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.078302s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_states_raid_put_admin [0.067979s] ... 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-852ce9db-c5fa-49e6-b284-a2a2a9293024 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.073058s] ... 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-4a0bde3a-a2b5-40c4-a70b-6b991a24bfc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_delete_observer [0.144840s] ... 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-810d2e21-f00f-43ea-a2da-6dc0560cca92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_states_raid_put_member [0.076866s] ... 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-b7198731-9ea7-43cc-a626-ce53e5e6968d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_states_raid_put_reader [0.058622s] ... 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-15505798-c0bf-4535-8d31-c05fe4ca33e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.093672s] ... 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-37ee4a74-e76c-46f2-9352-f7aea8c3a972 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.145058s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.059318s] ... 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-bd050a17-bf9e-4dd1-9804-8fac34b3ec5c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.129621s] ... 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-4f90c7b1-7f67-4b17-b17c-ea75e3d3aef1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.092605s] ... 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-572699af-c19b-47bb-979d-a82a77976e53 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.072016s] ... 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-47174727-2e54-45de-ab5d-a3734460d900 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.072024s] ... 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-1d1575d9-b805-4763-863c-a020ab6400e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.169022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_093_nodes_traits_trait_put_member [0.147781s] ... 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-72f7f5f2-0a64-42ce-83e3-993ea7d930cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_third_party_admin_cannot_set_maintenance [0.069277s] ... 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-95bd8cea-284e-42d4-9c6b-5022e3593d63 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_states_console_get_reader [0.132606s] ... 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-2367037d-72d0-4a7d-a09e-feea19b8025f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.080777s] ... 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-0ce24206-3aad-48be-9fc9-36f3037d519f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.087319s] ... 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-370e3c4f-92a1-44cc-833b-bbb7a9e3d4de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.063039s] ... 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-b5771981-c55d-4c2d-9447-ea511826a8ae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.168905s] ... 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-7b8c9f16-6bfc-476f-9c5c-8316eb292092 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.059867s] ... 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-50891e1f-1f90-41c8-b260-82b7318687e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.250714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.077117s] ... 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-88165546-e566-4369-91f7-023db51b2ce0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.073492s] ... 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-54bf3324-83c9-46ae-9305-8817220892ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.061967s] ... 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-e47ae376-cae8-4823-855e-4519142b2fca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.069127s] ... 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-91a2bb35-0e77-4fd0-a50a-f441a1efb593 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_095_nodes_traits_trait_delete_admin [0.182622s] ... 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-3136eb72-191d-49b0-823a-6f2980b6e72c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.073015s] ... 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-f7469c52-6bc6-42b7-9082-c07b769b91c2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.196767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.068721s] ... 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-088bb79b-527d-46f6-adf4-0e5c4731b78c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.064628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ce654fd-4ac5-48a3-8113-70ece85f0ca0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_096_nodes_traits_trait_delete_member [0.130607s] ... 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-4d2d22ef-d5d9-4257-a1ed-2fa09b881d75 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.058163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/4e818bd6-2eeb-4069-a54d-30ccac5f14de/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-abce2a0c-29e3-4e0d-a3e4-2f2f1735fc60 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 4e818bd6-2eeb-4069-a54d-30ccac5f14de could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.065101s] ... 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-530bcdf5-2b7a-4000-97d0-4f9359aa36f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.148233s] ... 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-da7235f4-a68e-497e-bc27-bbc02ff6621e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.120621s] ... 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-28481bee-79dc-4ba3-98bb-46530ecc10d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.076878s] ... 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-7a0c0168-c5be-4844-a8fc-b34592b9f1a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.233470s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.091442s] ... 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-6b97582f-b9fd-49f5-8e38-fa4b0c0cbff0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.066594s] ... 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-175a3923-18c1-4ec5-8d7f-f9d00b8b000b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.064600s] ... 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-e66c7352-5231-4843-baea-ddeb0425b6d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_098_nodes_vifs_get_admin [0.132391s] ... 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-a44b397c-eddf-4478-af20-bb30c13cec6d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.073522s] ... 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-59e9f433-6834-49ce-a6e0-77dd2737e231 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.076704s] ... 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-33f8d7d0-a7ed-4e8a-9234-5a9de3839d55 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.058591s] ... 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-c817262b-8270-4d34-8345-dc22af4b23e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.090031s] ... 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-05c57727-7588-4730-b734-da709e53f3db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_099_nodes_vifs_get_member [0.119876s] ... 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-03432193-d7a0-4b38-a6fd-fe64734f29b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.248480s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.073233s] ... 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-beffc822-d51e-4d19-90b4-a85511609733 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.083646s] ... 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-54cb310a-c97b-4fba-80df-be8cd60005b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.060802s] ... 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-2022c9f9-949b-49df-af74-e8f901f00b1a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_get_observer [0.131195s] ... 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-14ff1017-ff13-4647-9333-b4d8e7f44a31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.072651s] ... 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-66c07582-0de9-4b5e-86ea-3ccbdbcc7705 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.071772s] ... 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-91e73c7c-d1ce-4149-aee9-71dde790a644 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [0.079487s] ... 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-dda6ff0c-92bf-40c8-90bb-feda373bcea2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.220321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_vendor_passthru_post_reader [0.066484s] ... 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-81f93eca-9169-48b8-a986-d1843be50b7b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_101_nodes_vifs_post_admin [0.137855s] ... 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-10650389-1e06-4531-b998-7cc09e294537 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.080871s] ... 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-6ca30f38-718e-4f72-824a-9d0409eff303 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.062806s] ... 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-639408cb-3898-450d-8226-b07f04a1fb09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.068130s] ... 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-7eff6639-dd59-4afd-b335-3e9055164571 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_vendor_passthru_put_member [0.071157s] ... 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-931e83d9-e09f-4857-856f-ab3d2eaee0eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_102_nodes_vifs_post_member [0.129636s] ... 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-27d7898d-71fa-434a-8db2-c9e7e29c7d51 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_vendor_passthru_put_reader [0.061318s] ... 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-5266fef1-9ba1-4310-9765-2e3b69af80a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.079311s] ... 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-2f9b59ec-1a92-40a3-9fa0-15ace12d8187 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.239711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.064834s] ... 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-c9278578-aaf4-495b-91e5-ed7f46ce13fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_post_observer [0.133851s] ... 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-33c1fca5-ad07-4459-8c32-ab4e0ec55e12 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.108030s] ... 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-534d810f-79a7-4f92-9114-d80de94ca762 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.069501s] ... 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-32a6f916-4992-4701-9979-f50198f6c07b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.061989s] ... 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-60dcebc3-62cd-4cc2-9c67-27ffac1edcd5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.058609s] ... 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-90b11c0a-b8b9-46f5-abda-472fc0571aa0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_104_nodes_vifs_node_vif_ident_delete_admin [0.131229s] ... 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-23c3ea16-35e3-4bb3-9a95-d680c186cbcd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.074836s] ... 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-d76afe7c-00bb-49e2-83c3-1e26853495de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.244268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.089625s] ... 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-788fc773-14ad-4f4d-95d2-0f5007a0fc26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": ["trait1"]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.062387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ad6aa2c8-2029-4da7-b3d2-e62a5da5cd09/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc181276-c039-4588-865b-442a8b1d5e33 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ad6aa2c8-2029-4da7-b3d2-e62a5da5cd09 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.125083s] ... 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-0db226ae-7f7a-4f78-9b92-6cf4fa7865a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.063634s] ... 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-21f55e9b-0b85-46f6-86f0-58829f950ce6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.101368s] ... 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-215f2ba1-1b54-4b31-8ada-ceb4d3587fb9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": ["trait1"]} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.148749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_owner_manager_can_get_supported_boot_devices [0.062982s] ... 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-d1d94421-5ce4-48ce-9325-bdecb96f266b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [0.071597s] ... 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-818d1432-155b-4416-a57f-08904d527642 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": ["trait1"]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.129058s] ... 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-042a9dad-6454-4770-a8af-12d3bc71d95c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_member_cannot_get_supported_boot_devices [0.076221s] ... 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-842a5685-d06f-4bc8-bad1-5e9dc0ccce0f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.070530s] ... 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-ef793c3b-611c-4ffe-b32a-b0c4407324cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.146781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.080725s] ... 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-88b8bcb5-587a-4c76-90bc-5431490a8a83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.073422s] ... 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-7c7244de-ccf2-49e2-96fe-01c38a549037 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.133399s] ... 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-4a067173-9f34-41a0-8fa2-dbfc62f07d45 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.069536s] ... 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-0c96e9a4-f929-4fd4-a75a-59bde1709d86 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.093649s] ... 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-d276e2fc-a68d-4e10-aa10-2dedb0daea6b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.164980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.065097s] ... 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-b2080f2e-44f3-404f-ab11-dc291591df53 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_108_nodes_management_indicators_get_member [0.130248s] ... 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-f9d5e531-a2c5-4ed8-bab8-861a04058ba9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.069262s] ... 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-c49cb2de-1543-4030-89bc-1e0d76879d10 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.126749s] ... 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-517cda0b-1642-4781-b992-a6466709653d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_manager_can_send_non_masking_interrupt [0.079910s] ... 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-1c448524-ffc1-42ac-915c-26609529ca99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.172452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.255083s] ... 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-46e074f1-a0e1-4b10-b7dd-90a74d194834 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"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. {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_traits_delete_member [0.072718s] ... 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-cee67480-080e-4b9a-b1d5-6d83d68fd835 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.071235s] ... 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-41967246-4968-420c-b3d8-1d11cd5c195a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.170198s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_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.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.068366s] ... 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-ff619822-e0f1-4444-8c65-a11bc441e92c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.317948s] ... 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-2eecf387-bab5-4ea2-9c0f-6552469f8820 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_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.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_traits_trait_put_member [0.104208s] ... 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-ab982c1b-c620-444e-aaab-b79c6de6f015 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.061052s] ... 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-ef9a52fd-b08e-4f17-a472-62ef2530670b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.185155s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestIndirectionApiConductor.test_object_action [0.039001s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_admin [0.128677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae973cbd-9588-459a-aa44-5e9867454278 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.108437s] ... 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-7e17bfaa-c943-4305-b46e-c407b687807f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_third_party_admin_cannot_send_non_masking_interrupt [0.083794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/39afe556-6fe7-4626-84e3-5d33b6b9f9b7/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-37be52c2-3bd1-4aff-bb5c-385833dd8869 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 39afe556-6fe7-4626-84e3-5d33b6b9f9b7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.045916s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.036438s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.067513s] ... 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-65aa0ced-b52c-4ca6-8c4d-bebf10290d7c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.074236s] ... 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-051d4b82-9b8e-47c4-92fa-df46a8887c43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.046025s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_member [0.118877s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f71b6d3c-f051-4d43-8a1f-6d22778b0f52 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.080590s] ... 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-ca333daa-9ea5-4192-84f2-80b9cb335172 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.075989s] ... 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-6bcf5c61-7094-439a-8e6c-bf462597b177 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.062716s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_128_third_part_admin_cannot_get_states [0.066975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/cbf077a2-9c23-4ebd-a3d4-a6d45c4fe689/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ffafaf25-4b76-4356-b2a6-32511067b87c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node cbf077a2-9c23-4ebd-a3d4-a6d45c4fe689 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.050709s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_nodes_traits_trait_delete_reader [0.106376s] ... 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-9192cc4e-1d1e-48cc-847a-61327bf18ae8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_admin_can_put_power_state_change [0.064372s] ... 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-b43366bf-f3f5-4b90-bc15-da5fe729cd88 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.084365s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.062982s] ... 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-4d61967d-cf34-44cc-a8c9-1ae73022d15b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_owner_manager_can_put_power_state_change [0.083345s] ... 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-7ba659a1-2b63-4a1a-9fbd-9590175eaffa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_get_observer [0.226450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eba26905-af21-4bb7-a364-22fa6c7f3c57 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.079544s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_nodes_vifs_get_member [0.104458s] ... 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-633aaaa8-440c-4d57-b345-66cf864ccd6a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_admin [0.077076s] ... 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/b55ea176-6f34-4f3c-a11f-d17d1485c7f4 Openstack-Request-Id: req-5d725a72-40e7-46ad-9021-810bef2107b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b55ea176-6f34-4f3c-a11f-d17d1485c7f4", "created_at": "2025-05-30T17:32:31.823899+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/b55ea176-6f34-4f3c-a11f-d17d1485c7f4", "rel": "self"}, {"href": "http://localhost/portgroups/b55ea176-6f34-4f3c-a11f-d17d1485c7f4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b55ea176-6f34-4f3c-a11f-d17d1485c7f4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b55ea176-6f34-4f3c-a11f-d17d1485c7f4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_lessee_admin_can_put_power_state_change [0.125109s] ... 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-45731a6b-4a6b-4b93-af75-b521a2c7bdb8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_member [0.068543s] ... 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-b06ce6b2-add4-461b-8399-aab41e256155 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_nodes_vifs_get_reader [0.127475s] ... 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-e5b1d414-c805-49f0-ae6f-6f9db135f7ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.091611s] ... 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-e433bfb3-f763-478c-9954-56e66bbe99bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_owner_member_can_put_power_state_change [0.074969s] ... 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-ff33dc22-c5f4-431e-8f11-2405c0b27707 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_nodes_vifs_get_service [0.093646s] ... 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-c05bb2fc-1a5a-4e20-afaf-a38c7ef758cb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.083361s] ... 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-8009c103-c62c-4bf1-a99a-3e3beb09ad15 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_post_observer [0.271563s] ... 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-6c0441c0-47da-4eb8-bac8-906d9c95e560 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_lessee_member_can_put_power_state_change [0.148224s] ... 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-854d9f08-3664-48d3-ba4c-2b1ce6d29c7f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.063525s] ... 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-02cc33c2-4daf-4683-a3d2-9aa09fb1d15a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_admin [0.064050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9bdd30b9-cbea-4dd3-8780-1c382aef581b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:32.219101+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.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.064541s] ... 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-1e67d0c3-604c-4c7c-98c2-ba1940e38479 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.117423s] ... 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-4a6a6b60-4e5c-4a94-a59d-191e59711a90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_member [0.069951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fe93b4c5-99f7-4027-82ce-5d5680e08c06 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.066205s] ... 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-4fbc5638-083e-4cd5-8e8b-eb0ac67408d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_reader_cannot_put_power_state_change [0.080214s] ... 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-13aee1a4-d990-4f20-94f5-f75bd6fe1b3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_nodes_vifs_post_service_project [0.060961s] ... 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-10ece970-fa58-4160-b15e-a4cb46304f9a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_detail_get_observer [0.069495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ff9cf38-b234-410f-98e4-75345ac787e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:32.359846+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.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.063308s] ... 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-47a124f2-356a-419e-9eea-4e8e3f8af0e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.083755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfe52a6f-14cf-481a-aef1-9e9baefe66af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:32.441765+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.test_acl.TestRBACProjectScoped.test_project_scoped_137_third_party_admin_cannot_put_power_state_change [0.093218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/a0aaef59-4a7a-45d1-a252-324dc4c4c70c/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-def98652-5a97-4190-8481-2d02b83e729c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a0aaef59-4a7a-45d1-a252-324dc4c4c70c could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.056692s] ... 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-ab3d65e1-db99-45f8-8ec3-4ac220fd2d71 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.761506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_123_portgroups_portgroup_ident_get_member [0.079295s] ... 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-0ff26b9c-641d-4b03-8556-20d8cbd8e90d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.105109s] ... 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-ed46a733-4853-4b0f-96fc-bdcc90c9b4d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_nodes_vifs_node_vif_ident_delete_reader [0.082046s] ... 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-e9924011-e826-4448-8767-6441d16d0eaa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.076758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe4cbeaa-a13a-446c-84c3-2dedf44af871 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:32.605179+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.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.103374s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_126_nodes_vifs_node_vif_ident_delete_service [0.060145s] ... 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-7fba56fc-cbb1-410e-9b26-200ed79c6d3a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.092769s] ... 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-2c69e622-5b38-4e59-a4ef-e21cbef54740 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.086448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_125_portgroups_portgroup_ident_patch_admin [0.092442s] ... 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-248d822d-238f-4900-90c6-68666b90687b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} 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.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.064466s] ... 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-b20dfe2b-2c6a-4e68-b5e9-6015fc041216 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.084349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_140_lessee_admin_can_put_boot_mode_state_change [0.146115s] ... 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-ca3aea51-3ea8-4718-af61-fd91b57affe9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: Not implemented yet {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.081506s] ... 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-c894b598-206e-412e-9376-86e3e513782b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.127319s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_manager_can_put_boot_mode_state_change [0.120790s] ... 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-4c49332f-9bed-4838-89e2-a6fd38ec0073 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.059737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e699796b-533a-4d90-8eff-5dfee905eeda X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.075056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-187b92f0-c96d-4efa-80d0-ddf88828c0af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_portgroups_get_member [0.069756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f6d49be-d330-4e37-8407-b6aad1361c5d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.120439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [0.124075s] ... 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-cca78cac-b4eb-4317-9aad-894e255839ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_portgroups_get_reader [0.056063s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-528520ce-bc2f-427d-baf3-4a106d76d2f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.139789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1813fefb-c6d0-4d9c-a328-d94872089809 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.093938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_143_lessee_member_can_put_boot_mode_state_change [0.089853s] ... 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-97989602-1055-40d6-a0ad-3ff814ada169 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_portgroups_post_admin [0.096419s] ... 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/36e222a7-aa1d-438f-8d71-9b3329a1ee92 Openstack-Request-Id: req-8d81fad4-761f-4688-b776-eccf931e8c80 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "36e222a7-aa1d-438f-8d71-9b3329a1ee92", "created_at": "2025-05-30T17:32:33.184041+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/36e222a7-aa1d-438f-8d71-9b3329a1ee92", "rel": "self"}, {"href": "http://localhost/portgroups/36e222a7-aa1d-438f-8d71-9b3329a1ee92", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/36e222a7-aa1d-438f-8d71-9b3329a1ee92/ports", "rel": "self"}, {"href": "http://localhost/portgroups/36e222a7-aa1d-438f-8d71-9b3329a1ee92/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.150379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eea1adb9-910a-4b73-9983-f479fc1dd228 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_portgroups_post_member [0.077390s] ... 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-c10bbfc5-475f-4082-8475-b38249600725 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.109458s] ... 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-f868395d-e905-4c84-93ae-22821ed73f1c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.119002s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.064316s] ... 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-7d83266f-3d11-433e-805b-538f9b196768 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_admin [0.091405s] ... 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-6db859a6-7796-471e-b395-675bb949d041 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_reader_cannot_put_boot_mode_state_change [0.074341s] ... 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-273a422e-a287-473a-9ee8-61b8bc891447 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.093134s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [0.065197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8024ed1f-a419-4008-877e-5c331c7d7554 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.367318+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.test_acl.TestRBACProjectScoped.test_project_scoped_146_third_party_admin_cannot_put_boot_mode_state_change [0.076657s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1589affb-8f4a-4ad6-ba99-3683ce8a6e9f/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc9d26ea-bf3b-4815-8d05-1f1d00f9a345 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1589affb-8f4a-4ad6-ba99-3683ce8a6e9f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_member [0.080623s] ... 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-92b08867-e55f-4c31-860f-4dd84d115ae1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.077835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.065396s] ... 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-681054bf-ba46-4011-a900-489630c61da2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_get_observer [0.070360s] ... 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-b5c3060d-3759-4d3b-a6b0-3eea7c9e4ca0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.043779s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.103392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d345275-70a1-4041-9f11-b5c2accab08d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.458005+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.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.041086s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_owner_manager_can_put_secure_boot_state_change [0.071368s] ... 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-1d119ed5-d067-453f-81aa-2edd715aba1b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.089739s] ... 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-a3b5d544-7bad-4d92-b41e-5e154cc71c0c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.553721+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.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.066245s] ... 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-a0f082f3-1e46-4d0e-8129-eca24b983f24 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.131136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef114916-abcd-4e40-9950-8ec5a0039070 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.583345+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.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.074988s] ... 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-4e678ff0-af7e-4caf-89d1-f26954c3fad4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.072109s] ... 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-494e3831-2d51-48ba-94ec-cb7463f3e9f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.097782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bef0ccb-be6d-4821-9d99-19ea78e57183 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.698329+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.TestRBACModelBeforeScopes.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.087318s] ... 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-bd382e41-0282-4aa6-a20f-4a11e39dfe5e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.709486+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.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.059406s] ... 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-5aac2c49-4971-4cce-a445-d763f132ac66 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.093824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c558601-8a97-48df-9f61-e24a859aae55 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.787018+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.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.071465s] ... 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-ed59faa5-f0c4-4349-a196-49377f7d3b99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_admin [0.135971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a73038c3-fef5-4812-8392-60ecf78421b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_153_owner_reader_cannot_put_secure_boot_state_change [0.071589s] ... 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-aae0209a-4b97-48b4-8094-a76f8cbd1282 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.100944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-786c7f8f-926c-4003-9df6-a6da66b031a0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:33.877106+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.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_member [0.060886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3049837-d124-4d02-b3aa-0815a0af0c24 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_get_observer [0.059559s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4131afa4-e6ec-43a7-ac85-ffa71ba5713e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.106658s] ... 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-8aefe28f-2572-4678-b572-95304bf74175 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.099458s] ... 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-f2243f08-5a36-4a6a-ad3c-2f63e269b65b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [0.069085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/016dcfdb-8d6f-4a4e-9365-493d2abe26fb/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-174e6ca3-c1d9-4c41-9ba2-3f589f7029ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 016dcfdb-8d6f-4a4e-9365-493d2abe26fb could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_admin [0.077717s] ... 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-b7a31c1b-c0c0-481c-af90-1fbe32159844 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.086838s] ... 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-5db66d9d-31ff-42d9-af42-c2c5f94311c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_member [0.075174s] ... 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-c8667818-3bb6-422d-b096-dad8e350c138 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_owner_admin_can_change_provision_state [0.083692s] ... 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-b7d259da-de11-43b6-a6a6-d124df480abc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.063321s] ... 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-11c2e764-81fb-4946-8815-d3eadb4fd54d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.112696s] ... 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-0268b2fb-06eb-4478-bf3e-da4f668c44da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_post_observer [0.124090s] ... 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-52c3f946-171a-4174-9dd9-d3521e572f15 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_owner_member_can_change_provision_state [0.063866s] ... 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-9f699cc4-0114-4b8a-984b-5a82a30b6a7e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_admin [0.064778s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b247e075-9a69-493d-aed6-ead4bdc6ce38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:34.324262+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.065171s] ... 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-e8d5f2f3-9f11-4590-a2f2-853ca161f80d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_member [0.069034s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4c8c6a19-ee39-4096-925a-6e67d35e4940 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.072974s] ... 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-9bdf1450-a7b7-4b4d-a47d-eed61f8af530 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_detail_get_observer [0.085933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b4e0dcc3-32dc-47a1-80ac-fa6befeab7d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:34.463231+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.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_admin [0.092877s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e91c07e-d264-4244-8cd9-7b684fdcba44 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:34.560148+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.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_member [0.076968s] ... 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-f5f2893b-016a-49c3-8333-3ec32c143639 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_member_cannot_change_provision_state [0.278774s] ... 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-6057d132-cd02-432b-800a-c4419e9fb3dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_148_ports_port_id_get_observer [0.107942s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a090787c-51b2-496c-9881-06d2382f0978 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:34.757293+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_third_party_admin_cannot_change_provision_state [0.087944s] ... 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-b6ddbaf9-51c4-4d0d-a596-ef0a13c13fb8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.583794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f605569e-aeb8-493e-8aa9-832752861aa5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.061037s] ... 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-85d56dbf-b890-4843-8643-b15b950e8d02 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [1.313700s] ... ok 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( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_admin [0.094733s] ... 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-02d8db30-6315-453d-a019-c1437384ef03 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.080744s] ... 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-cfbd342b-8bf4-49bd-be59-fadb21676c30 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_portgroups_portgroup_ident_delete_member [0.123547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f0b1638b-819a-4924-8d4d-79d4fbbfa939 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_member [0.087683s] ... 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-2c6f5f68-7e7e-4e51-9d83-babeb65a2d24 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_owner_member_can_set_provision_state_clean [0.070546s] ... 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-4432a3a0-fe64-4b48-baf8-af871d98b97c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.094689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-779ac63c-0960-4a83-a89f-09cb009ea4ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_patch_observer [0.072436s] ... 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-00e8b946-608d-4a61-866c-0c24df22dee0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_reader_cannot_set_provision_state_clean [0.079087s] ... 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-f23c18a6-2890-49c2-8246-40c160caebd3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_152_ports_port_id_delete_admin [0.070453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ecb89901-d36c-4003-bd01-046b194e54c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.092100s] ... 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-734bc149-389d-46f2-8de2-c0215c33b0bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_can_set_provision_state_clean [0.063956s] ... 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-71cd85dd-ad8c-42c3-b019-c1fd4014d306 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.308942s] ... ok 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.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_member [0.076651s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-541178bd-d028-475f-86a4-493c504964af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_member_cannot_set_provision_state_clean [0.069494s] ... 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-3fd27702-d9e5-47ca-a836-c2a3f3c8eaeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.096695s] ... 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-075f44fd-be14-4f14-a51c-f134d6272205 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestRBACModelBeforeScopes.test_rbac_legacy_154_ports_port_id_delete_observer [0.079973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dde1ec5b-0541-4c64-aadc-e667790eda35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.115585s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_provision_state_service [0.067789s] ... 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-d77826ad-29a4-4d33-baf9-b37d7da52f2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.087654s] ... 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-ab40b231-dfbd-4899-af65-fb3b9538ec0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.057763s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_owner_reader_cannot_set_provision_state_service [0.058710s] ... 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-6ffabc67-43e8-4ff0-a9df-cbd78ed80e01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.030291s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_admin [0.132289s] ... 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-54b65cd4-135f-45ac-a4e3-f191aebf26ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_lessee_admin_can_set_provision_state_service [0.072509s] ... 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-e4c99c40-39b6-4aeb-aabf-1c0f25d50f07 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.051496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.065492s] ... 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-d6872bf4-a182-4f3f-8392-40c976f089ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface [0.038389s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.151153s] ... 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-249ffd23-024d-4069-ae66-c4fa0d47768b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_172_lessee_member_cannot_set_provision_state_service [0.068810s] ... 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-d3cd6ef5-3f8d-4013-bd87-0481130188ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.042824s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_get_observer [0.065140s] ... 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-76c9d227-637d-4efd-b6c9-b521c13fa193 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.041710s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_owner_admin_can_set_raid_config [0.072390s] ... 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-926b311a-0497-49c0-b9bc-889d1cfd8a2a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.085053s] ... 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-65e0df97-1bb9-4233-bb4c-1e558ba65fa5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:35.570749+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.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_nodes_portgroups_get_service_project [0.144310s] ... 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-38bd0377-7ff9-4906-9aaa-af69d0cfccc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_174_owner_manager_can_set_raid_config [0.061818s] ... 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-485d3eeb-872b-481e-9c33-24781f134a9f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.103624s] ... ok 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_159_nodes_ports_detail_get_member [0.076539s] ... 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-07c47d01-6a2e-4456-94a3-3694705190dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_lessee_admin_cannot_set_raid_config [0.095711s] ... 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-36028b29-1155-4969-8152-d18966886e95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.068769s] ... ok 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_portgroups_get_service_project_disabled [0.128687s] ... 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-dda74711-8cbb-434d-8558-6b4e72a83eaf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.031793s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.035934s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_lessee_manager_cannot_set_raid_config [0.086432s] ... 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-58b80b06-8bf4-418f-a75f-93ce09f377e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_portgroups_detail_get_admin [0.073600s] ... 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-a447629f-41d3-4d8a-a7ef-347c8ff5dd05 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:35.795588+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.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set [0.063566s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_177_owner_member_can_set_raid_config [0.090517s] ... 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-95f5f5c2-c5fb-45cf-bf5f-f9bed6ba0ba1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_portgroups_detail_get_member [0.075560s] ... 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-4669ddf7-b99b-4079-bd9e-58bf2530b4f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:35.870852+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.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset [0.081701s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_service_owner_can_set_raid_config [0.067687s] ... 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-93633f04-3426-4022-b684-83d850bebd71 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_reader [0.072803s] ... 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-2882497f-1b68-4f6d-bc7d-1e321d30cd4a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:35.949465+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.test_acl.TestRBACProjectScoped.test_project_scoped_179_lessee_member_cannot_set_raid_config [0.078346s] ... 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-44aa52d0-0e13-4440-aef2-5b62a04570a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service [0.072941s] ... 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-f13d9b37-a277-4d83-82a8-d287df9d742d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:36.028672+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.test_acl.TestRBACProjectScoped.test_project_scoped_180_third_party_admin_cannot_set_raid_config [0.066724s] ... 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-56c7f3f7-04de-49a0-97c7-473e40379afd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_portgroups_detail_get_service_project [0.067997s] ... 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-2a24ad91-5fb2-4a0d-b96f-960cd377c445 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-30T17:32:36.098626+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.TestRBACModelBeforeScopes.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.450350s] ... 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-46970f45-c582-4d9b-957d-8659879dd094 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:35.733119+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.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.204160s] ... ok 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( {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_service_cannot_set_raid_config [0.079452s] ... 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-16755565-6c2c-4e4a-8c22-67c5bf4c0b91 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_nodes_portgroups_detail_get_service_project_disabled [0.077684s] ... 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-00f60bec-3210-45a0-a199-92f54c9c4f1d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_admin_can_get_console [0.070793s] ... 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-5a8b9e2f-5f5a-445b-a415-d8f49cc5a91d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_admin [0.068888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76399935-60d2-4edf-8fa9-e2bffe1a8826 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.120357s] ... ok 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.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_admin [0.136546s] ... 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-50ec828c-02e5-4fca-9cdf-3f6a1c256be9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service [0.072961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6e3c9b4-ab91-4627-b26d-fe312d1b78af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_manager_can_get_console [0.102302s] ... 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-663034f9-d7a2-4e56-9cc8-86e4005cf351 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_member [0.110481s] ... 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-cb3b9d57-4aa3-4de4-9586-46ced10b83aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.125910s] ... ok 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_ports_get_service_project [0.065945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb6e44e8-cd71-45b3-897f-8698239a2960 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_service_can_get_console [0.114427s] ... 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-1e6d49b1-5873-44ba-81e8-2445ecf83c24 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.095622s] ... ok 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_service_project_disabled [0.070364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0f01573-aa0d-474a-94a2-12dc49201385 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_get_observer [0.125950s] ... 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-5a5f6d35-c681-40c7-bc88-343df9a4460f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_ports_get_member [0.064761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ebae38c-dee2-4ea8-8c81-c0e0199fbf3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_manager.UpdatePortTestCase.test_update_port [0.068569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_console [0.124801s] ... 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-b8e374fc-f9f0-4ecd-883a-ca51231cb9a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_ports_get_reader [0.084002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2c36d96-eac2-459f-902b-2960f89be274 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.116631s] ... 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-bf761955-bf1a-4bd1-9495-d2a3535f9f7a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.078666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_console [0.087910s] ... 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-0b55e1da-2ee9-4504-9f3d-75b97944e95d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_admin [0.072502s] ... 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-071f89cf-fac7-4444-8149-75d63db6c23b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.052024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_187_owner_member_can_get_console [0.076454s] ... 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-2293d18f-48e0-4ad7-846a-3521fe02fa73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.069582s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_168_ports_post_member [0.086910s] ... 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-0dbb4af1-14ee-43a4-8526-dc79f3e424e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.174511s] ... 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-65350e9f-87fb-4ae3-8578-e5d46ef1d68b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.045952s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_get_console [0.066777s] ... 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-6558a138-2b18-43f2-a756-4a9c12e36ff7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.039492s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_reader_cannot_get_console [0.066653s] ... 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-cd4a6f82-da70-4656-8c91-8a62e0dca2ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_ports_post_reader [0.111862s] ... 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-6f2b8b57-ea60-44a3-ae61-a2bcb4dd087b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.048470s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_166_portgroups_ports_detail_get_observer [0.129617s] ... 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-4da949f1-870f-4a8c-92d4-d0ae028c220d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.044467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_190_lessee_reader_cannot_get_console [0.070328s] ... 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-fe9652cb-28c5-496a-85d5-fc0eaf0bf85f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.045477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.101713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c94d86f7-3f0a-42f9-b9f1-1bb9669f2376 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_admin [0.147525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddacaf9e-adf6-4a11-ad40-7ce2e4546fb3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:36.991523+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.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.045783s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_191_third_party_admin_cannot_get_console [0.090502s] ... 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-ad95df03-ed53-43bc-9658-3305167b6e92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.041270s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_171_ports_detail_get_member [0.080099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbf5b1a0-9610-4ece-81b8-55ce6b487eb8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:37.120098+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.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_member [0.113561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4eaf94c-46a3-41e6-b4fa-cb2e051cb47d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_admin_can_set_console [0.087312s] ... 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-19764de7-faac-45b0-bb0e-be781d779fb4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.049195s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_172_ports_detail_get_reader [0.058130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-44ae34f1-c461-499e-9aa0-6da1934f937c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:37.183708+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.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.057476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_manager_can_set_console [0.069815s] ... 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-3af2adb3-1330-4e6c-96ec-cf30bebf5eae X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.060879s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_admin [0.089031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9d2e5a4-df8c-4757-abc9-b72ee63856d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:37.268314+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_admin_cannot_set_console [0.063335s] ... 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-777e218b-ae17-4fbd-8cfe-0dd344229903 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_169_volume_get_observer [0.135821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4242a967-a1b4-4895-8f36-ef94176d3554 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.050804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_manager_cannot_set_console [0.074721s] ... 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-09734354-d9fa-4bd1-9603-c4545ab63569 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.040033s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_get_member [0.100369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6ee2c49-6d62-4681-b7a3-9f2c2304cffd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:37.365295+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.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_admin [0.108395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-007380a5-42ab-4c3b-9577-6e181d704296 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "54a1ea4e-2db8-4f3b-9dec-87ea9cec3de4", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/54a1ea4e-2db8-4f3b-9dec-87ea9cec3de4", "rel": "self"}, {"href": "http://localhost/volume/connectors/54a1ea4e-2db8-4f3b-9dec-87ea9cec3de4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.039515s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_196_owner_member_can_set_console [0.068561s] ... 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-a6182073-6e41-4330-ab51-318e7901bd18 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_get_reader [0.075226s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b71175b-a8e1-4598-8c0e-bffc7e5a7b2d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:37.436027+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_lessee_member_cannot_set_console [0.076830s] ... 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-1c50b7b2-ee43-4472-bd23-39bd31e144ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_171_volume_connectors_get_member [0.150809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8050a566-eb68-4d13-af50-910ee34d9878 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_admin [0.092579s] ... 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-448837c5-f263-4ef0-8ea8-2088c0024121 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_service_can_set_console [0.071159s] ... 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-162e0a18-65f0-45f4-961a-c46b94676aaf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_service_cannot_set_console [0.061092s] ... 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-9391eb6b-ba84-47a9-b3c8-c1ae486f3956 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_172_volume_connectors_get_observer [0.096731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f3db07b-96eb-49d7-bcc9-5e33ca363d4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "aa87d679-247f-4bad-b616-0fa92aff06ba", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/aa87d679-247f-4bad-b616-0fa92aff06ba", "rel": "self"}, {"href": "http://localhost/volume/connectors/aa87d679-247f-4bad-b616-0fa92aff06ba", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_ports_port_id_patch_member [0.089055s] ... 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-c698ed04-026e-496b-983a-9978b5fcfcbf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_ports_port_id_patch_reader [0.068357s] ... 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-90815459-c05b-4b37-881e-8ab82a8675e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.312243s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_admin [0.102308s] ... 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/a343333b-9f8a-4222-821b-92ee6d72f424 Openstack-Request-Id: req-73c1ad12-b615-46ec-8ef2-574011c227ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a343333b-9f8a-4222-821b-92ee6d72f424", "created_at": "2025-05-30T17:32:37.757606+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/a343333b-9f8a-4222-821b-92ee6d72f424", "rel": "self"}, {"href": "http://localhost/volume/connectors/a343333b-9f8a-4222-821b-92ee6d72f424", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.036774s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_admin [0.062051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1375d7e1-018c-4d5f-a565-fa38ec294154 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.040627s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_180_ports_port_id_delete_member [0.068813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6c3edadf-4a47-4a76-a3cd-43de56841e99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.038871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_add_node_traits [0.021973s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.020567s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_member [0.148698s] ... 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-060a432d-4b4e-4f8d-a643-bdf57d09bd0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_ports_port_id_delete_reader [0.060785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7d3c103f-ae67-4e88-8dbc-568bb4962651 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.023851s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.018892s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.026495s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_connectors_post_observer [0.085803s] ... 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-9741556c-aad6-40e5-9892-d77893e2e622 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_admin [0.071958s] ... 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-25dd4d03-1ef9-4562-8c05-48e6b332311c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.022694s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_admin_cannot_get_vendor_passthru_methods [0.360468s] ... 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-b2863363-3ab5-4009-b771-0a727c81d51a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode [0.022089s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.020739s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot [0.020080s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_owner_manager_cannot_get_vendor_passthru_methods [0.065449s] ... 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-d737b964-bc31-44eb-a576-6d7144a55d2f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_get_member [0.084370s] ... 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-bfb9c6e5-bd5f-40f7-b779-6c10787030ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.024890s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.021036s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.132414s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/a08de99c-6bd1-46e0-a0dd-317d75eebb19 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0cad9f68-71e3-4286-b9a3-040a97dea87a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a08de99c-6bd1-46e0-a0dd-317d75eebb19", "created_at": "2025-05-30T17:32:38.077132+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a08de99c-6bd1-46e0-a0dd-317d75eebb19", "rel": "self"}, {"href": "http://localhost/volume/connectors/a08de99c-6bd1-46e0-a0dd-317d75eebb19", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_service [0.022070s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_owner_service_cannot_get_vendor_passthru_methods [0.070420s] ... 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-8fd77c6b-44dd-4028-8f9b-c5594e2dd24e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_get_reader [0.073971s] ... 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-c19b32bc-8358-4388-ba17-bb0f8976fcd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.026201s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.020618s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.076464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/f38c4815-7c83-43f0-a697-5c7b2b62766d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-04682b91-c335-4faa-be7a-6234baa97f35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector f38c4815-7c83-43f0-a697-5c7b2b62766d could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_owner_member_cannot_get_vendor_passthru_methods [0.056884s] ... 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-6b6e08c2-1c25-47fc-83ba-2e10ff26a18e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.026494s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.021131s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.020218s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_owner_reader_cannot_get_vendor_passthru_methods [0.065077s] ... 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-1d56068b-756a-4846-bf55-e7d91a82470b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.026403s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.091091s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/93d62343-51dd-463d-beef-e3a023be5bdd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78cb689d-33d3-40af-9fc1-248003421e23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "93d62343-51dd-463d-beef-e3a023be5bdd", "created_at": "2025-05-30T17:32:38.265324+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/93d62343-51dd-463d-beef-e3a023be5bdd", "rel": "self"}, {"href": "http://localhost/volume/connectors/93d62343-51dd-463d-beef-e3a023be5bdd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.030776s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru_methods [0.064364s] ... 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-3de1ea6d-827b-4f15-b629-fd4a6d38de8b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.026638s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.040193s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_lessee_manager_cannot_get_vendor_passthru_methods [0.064748s] ... 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-593b6ed9-bfed-41b5-9a9b-d809cdaf4fe2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_179_volume_volume_connector_id_patch_admin [0.111740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/8c602561-ca2f-4bab-8602-c0debf03927e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-da06fd6a-6c45-46a8-8376-3e536ecc452d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.029417s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_admin [0.291960s] ... 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-5bd5eb17-2943-4ec6-91e6-94e2afe49da5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:38.223943+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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.025173s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_lessee_member_cannot_get_vendor_passthru_methods [0.060617s] ... 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-85a48f09-c090-4004-ae5c-f46de1519fbf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.025845s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.082798s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/de01cba5-c940-4e9b-aa56-3242e0ceb574 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-288256d9-2339-4e54-8ec6-937b32f06b43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector de01cba5-c940-4e9b-aa56-3242e0ceb574 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_service [0.029515s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_lessee_reader_cannot_get_vendor_passthru_methods [0.062325s] ... 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-7954e790-0d9c-4306-b0f1-30695b5a25fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_nodes_ports_detail_get_member [0.081478s] ... 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-157d327e-9150-4e10-b7c1-3d166b5c55a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:38.487432+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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.029881s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.026151s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_owner_admin_cannot_get_vendor_passthru [0.061168s] ... 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-db02ccb9-37e9-4708-bcf2-24cb39fcb9b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_181_volume_volume_connector_id_patch_observer [0.104477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/088723e1-9487-41b9-8b3f-ffba5b84c1bd WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ebd14a6a-5bc2-4bcb-bcbe-5a141267d1c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.026146s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_nodes_ports_detail_get_reader [0.074825s] ... 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-b0ee4f36-c750-4174-a8c6-071f770f4136 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-30T17:32:38.567833+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.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.025956s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_owner_manager_cannot_get_vendor_passthru [0.059814s] ... 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-4296f250-ae4c-489f-860b-1638040bb8c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.031864s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_portgroups_ports_get_admin [0.071231s] ... 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-1cf4b485-5d42-4e07-a308-344beb6282d2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.027300s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_owner_service_cannot_get_vendor_passthru [0.065034s] ... 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-9ff73ee1-9363-4a9b-8ca7-26ce17afe1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_182_volume_volume_connector_id_delete_admin [0.128526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/f41c47d4-edf0-4e19-992d-2fd78bd4fa6d GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-537590eb-b8bd-41ca-9c90-b2aa8d977af5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.042377s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_portgroups_ports_get_member [0.071701s] ... 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-424ba96e-2fdf-45c2-8b88-2ca9bb44667b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.023527s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_owner_member_cannot_get_vendor_passthru [0.063176s] ... 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-1426038d-f2f9-48a5-aa2d-853dfb1ff192 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state [0.032372s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.022125s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_portgroups_ports_get_reader [0.074353s] ... 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-1172869f-e4b8-424f-adfa-1ec8f14d2f1d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_reader_cannot_get_vendor_passthru [0.059334s] ... 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-3d144cb2-041f-4d22-85e4-29cdb3f634eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token [0.033305s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.023937s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.151849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/c4917a06-6083-4888-bf0a-1940e4fded07 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-178a9ef8-6eb2-43bc-86aa-763581195c0d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c4917a06-6083-4888-bf0a-1940e4fded07 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_lessee_admin_cannot_get_vendor_passthru [0.067406s] ... 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-7fdbf7b2-c582-49a3-bcc2-6396f459442b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_portgroups_ports_detail_get_admin [0.079237s] ... 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-f190905c-0020-4326-9b4d-bf3b299694d2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.040077s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.022145s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_lessee_manager_cannot_get_vendor_passthru [0.060583s] ... 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-063dd038-69d0-4bdb-8016-bbb3c4d09de5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_portgroups_ports_detail_get_member [0.068931s] ... 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-116e243f-b00c-44a5-870c-3e40af67d2de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.029584s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.021962s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.134239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/e24466d3-936b-47c6-9fef-217adb01c912 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-da016708-7d77-4b21-bfe3-838f99d5aa9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.026615s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_portgroups_ports_detail_get_reader [0.074492s] ... 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-3d2d5cc8-351f-44e0-bbf6-1091671f10b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_lessee_member_cannot_get_vendor_passthru [0.089294s] ... 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-142c35de-13a7-4bc6-b16e-00e4641d9bdb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.034363s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.022983s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_admin [0.054696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df813149-c134-4997-aa8b-841db747547a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.032406s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.028257s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_reader_cannot_get_vendor_passthru [0.114266s] ... 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-9a0cc9b6-0b6b-4c6d-a5a4-a299dc518676 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.024448s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_member [0.076274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57b50a42-eb80-4e0e-9a1c-2f57796fca92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.022200s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_admin [0.199971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8142b65-1447-48b1-9e53-a3711635d5a2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "456878fa-2676-4cec-acd8-20369bcfb2e4", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/456878fa-2676-4cec-acd8-20369bcfb2e4", "rel": "self"}, {"href": "http://localhost/volume/targets/456878fa-2676-4cec-acd8-20369bcfb2e4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token [0.021361s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.023705s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_get_reader [0.063258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7a49807-1fd3-4a92-830e-c6a15055cc3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.043182s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_owner_admin_cannot_post_vendor_passthru [0.134993s] ... 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-b87064df-916a-429c-b5f8-472d2eda1468 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_get_service [0.067838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e44aa31-f270-4fb0-828d-d59263d62b11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_local_call [0.054860s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_member [0.160885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4e6e561-b7d7-44e6-a938-55138458b9e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception [0.043038s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_volume_get_service_project [0.074823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d04f244-8202-4201-aade-0000280b0239 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch [0.043521s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_owner_manager_cannot_post_vendor_passthru [0.129901s] ... 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-115bdc72-44f4-40e7-b0eb-37d5109ce0af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_admin [0.069718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6c07d9a-fa53-4973-a38d-52fe21597129 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "4d789121-389a-4bd0-bc0d-f5f10f28d616", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/4d789121-389a-4bd0-bc0d-f5f10f28d616", "rel": "self"}, {"href": "http://localhost/volume/connectors/4d789121-389a-4bd0-bc0d-f5f10f28d616", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled [0.049265s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_get_observer [0.108310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c76d8b2-a1f0-4571-9011-c1fda6912752 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "a0db6340-aaa2-4e89-aad5-0070afddb8a5", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a0db6340-aaa2-4e89-aad5-0070afddb8a5", "rel": "self"}, {"href": "http://localhost/volume/targets/a0db6340-aaa2-4e89-aad5-0070afddb8a5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_volume_connectors_get_member [0.065212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d99a3823-07fd-4825-964a-a5cb97e4bf98 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "a2a6ac49-9923-4576-9e48-d272ca448b84", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a2a6ac49-9923-4576-9e48-d272ca448b84", "rel": "self"}, {"href": "http://localhost/volume/connectors/a2a6ac49-9923-4576-9e48-d272ca448b84", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled [0.082183s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_admin [0.088993s] ... 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/6a10eacf-0725-4aa1-b0c3-008749074fcf Openstack-Request-Id: req-3f33a1cb-8d0a-41ac-a797-d54c80dc9cf1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6a10eacf-0725-4aa1-b0c3-008749074fcf", "created_at": "2025-05-30T17:32:39.572964+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6a10eacf-0725-4aa1-b0c3-008749074fcf", "rel": "self"}, {"href": "http://localhost/volume/targets/6a10eacf-0725-4aa1-b0c3-008749074fcf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_volume_connectors_get_reader [0.065118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-01f711cd-d046-40f6-9c9d-b86275ed9b59 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "2e580022-fb01-4e4c-af74-065c95f08433", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2e580022-fb01-4e4c-af74-065c95f08433", "rel": "self"}, {"href": "http://localhost/volume/connectors/2e580022-fb01-4e4c-af74-065c95f08433", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_post_vendor_passthru [0.190824s] ... 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-724d3c3f-0490-4f4e-9f75-d455f56ac591 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled [0.059905s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_member [0.070709s] ... 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-ff6b0749-2368-4602-9356-f3fc2feb8572 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_volume_connectors_get_service [0.072530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9156fdc4-7b64-4996-a339-dfa2cd45f658 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "1d8d4079-5a66-4d70-85af-9100d89f9bf3", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1d8d4079-5a66-4d70-85af-9100d89f9bf3", "rel": "self"}, {"href": "http://localhost/volume/connectors/1d8d4079-5a66-4d70-85af-9100d89f9bf3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast [0.083520s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_volume_connectors_get_service_project [0.064710s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-757724fc-e882-4701-bc99-fb3149f43390 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "2c613c5d-69b8-4e99-8411-096763f01c9d", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2c613c5d-69b8-4e99-8411-096763f01c9d", "rel": "self"}, {"href": "http://localhost/volume/connectors/2c613c5d-69b8-4e99-8411-096763f01c9d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_targets_post_observer [0.093150s] ... 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-bde5d1fe-17cd-4941-aeff-2c4c36dfe9f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error [0.063504s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_volume_connectors_get_service_project_disable [0.062904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c788006-4943-4852-a716-cf1443c4dba1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.066654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/b1774843-b893-4fea-b097-3f36782e17fa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20b40d46-c142-4c1d-b128-8514a8a906a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b1774843-b893-4fea-b097-3f36782e17fa", "created_at": "2025-05-30T17:32:39.781621+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/b1774843-b893-4fea-b097-3f36782e17fa", "rel": "self"}, {"href": "http://localhost/volume/targets/b1774843-b893-4fea-b097-3f36782e17fa", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_member_cannot_post_vendor_passthru [0.190688s] ... 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-14804ef1-24c4-4fba-b3b3-8b88f8657c49 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.054671s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.037651s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_admin [0.079787s] ... 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/4dceab34-1ba7-4fe3-9554-d3f3bd4d4b1c Openstack-Request-Id: req-70263422-1ef6-45a3-b94a-57ca91c81d66 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4dceab34-1ba7-4fe3-9554-d3f3bd4d4b1c", "created_at": "2025-05-30T17:32:39.877367+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/4dceab34-1ba7-4fe3-9554-d3f3bd4d4b1c", "rel": "self"}, {"href": "http://localhost/volume/connectors/4dceab34-1ba7-4fe3-9554-d3f3bd4d4b1c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_member [0.078224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/f39427d3-ff18-4660-ba52-2513487a24a2 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e80993c2-1b05-4cf2-bdff-f838f2b44f26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target f39427d3-ff18-4660-ba52-2513487a24a2 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.052274s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_post_vendor_passthru [0.130602s] ... 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-fde74173-c558-4814-91ff-f56dbf6750bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_193_volume_volume_target_id_get_observer [0.080187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/9acb265d-e3b2-4c32-9f01-f7a0735ca3b9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4cc666e-ea5a-41f4-8a21-8e1e49f82fb6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9acb265d-e3b2-4c32-9f01-f7a0735ca3b9", "created_at": "2025-05-30T17:32:39.936591+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/9acb265d-e3b2-4c32-9f01-f7a0735ca3b9", "rel": "self"}, {"href": "http://localhost/volume/targets/9acb265d-e3b2-4c32-9f01-f7a0735ca3b9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.044774s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_member [0.107142s] ... 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/73b542cd-552e-47fd-b5b3-b13e5becf22b Openstack-Request-Id: req-ab4c41b8-3154-4911-977c-53f815a02d66 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "73b542cd-552e-47fd-b5b3-b13e5becf22b", "created_at": "2025-05-30T17:32:39.983465+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/73b542cd-552e-47fd-b5b3-b13e5becf22b", "rel": "self"}, {"href": "http://localhost/volume/connectors/73b542cd-552e-47fd-b5b3-b13e5becf22b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.050074s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_reader [0.065565s] ... 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-3ee8e3e9-ede6-4209-896a-3bb258686255 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.095529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/d583cf94-9223-49ec-9f3d-28b54a248f34 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5411b427-fc34-47aa-9178-b4d98e4327ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.041725s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_lessee_admin_cannot_post_vendor_passthru [0.140753s] ... 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-fbb029db-a54a-4e6e-ae26-af886374da1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.045852s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_connectors_post_service [0.088410s] ... 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/a6153f05-43b9-4e4c-a670-1e1f5bbfc3c1 Openstack-Request-Id: req-3c352518-f7c3-4f95-8af5-c06ea563c9b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a6153f05-43b9-4e4c-a670-1e1f5bbfc3c1", "created_at": "2025-05-30T17:32:40.140911+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/a6153f05-43b9-4e4c-a670-1e1f5bbfc3c1", "rel": "self"}, {"href": "http://localhost/volume/connectors/a6153f05-43b9-4e4c-a670-1e1f5bbfc3c1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.090840s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/d72bd32a-e76c-4d75-8115-5e3df3270eae WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3260bed5-15a7-4789-af5f-230a41b6c901 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d72bd32a-e76c-4d75-8115-5e3df3270eae could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.048289s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.041715s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_connectors_post_service_project [0.068653s] ... 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/84883be1-709c-4440-b123-8fde94b8cf24 Openstack-Request-Id: req-ef87fabb-af9d-49ef-8afa-4cf570a12069 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "84883be1-709c-4440-b123-8fde94b8cf24", "created_at": "2025-05-30T17:32:40.212678+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/84883be1-709c-4440-b123-8fde94b8cf24", "rel": "self"}, {"href": "http://localhost/volume/connectors/84883be1-709c-4440-b123-8fde94b8cf24", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_post_vendor_passthru [0.124387s] ... 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-7e2a082a-6a82-4db6-879d-3ab433470182 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.080323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/cc9a5499-f416-40c1-b6fc-3aee0ebe8276 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5717e87d-4ef0-4ae2-96a0-a90e527fd633 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.046872s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_admin [0.073344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/76d642be-d05d-4ab6-9472-3c537c69d9b2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d8cdf4f-e8b9-4719-a093-6dd3003838d2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "76d642be-d05d-4ab6-9472-3c537c69d9b2", "created_at": "2025-05-30T17:32:40.263626+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/76d642be-d05d-4ab6-9472-3c537c69d9b2", "rel": "self"}, {"href": "http://localhost/volume/connectors/76d642be-d05d-4ab6-9472-3c537c69d9b2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.041957s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.083781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/7e1f6eff-2a00-4a44-abc6-52de7e90f0c1 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e0fb0129-6469-4fc1-b4bd-95112940ee87 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_get_member [0.065295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/2fe5ff38-4411-4b60-ab56-aaf2df022010 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b1cb0c1-e7eb-4d5e-ba6d-d4fdde12c050 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "2fe5ff38-4411-4b60-ab56-aaf2df022010", "created_at": "2025-05-30T17:32:40.334531+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2fe5ff38-4411-4b60-ab56-aaf2df022010", "rel": "self"}, {"href": "http://localhost/volume/connectors/2fe5ff38-4411-4b60-ab56-aaf2df022010", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.054308s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_lessee_member_cannot_post_vendor_passthru [0.143451s] ... 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-0b282c53-f59f-4647-bd86-9256dbf4e721 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_198_volume_volume_target_id_delete_member [0.062731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/bbe7e2f8-4b39-45eb-b46a-e4ac7ada4fbc GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8856ee6b-b8bc-42c3-95d5-bce1d5306ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target bbe7e2f8-4b39-45eb-b46a-e4ac7ada4fbc could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state [0.039069s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_get_reader [0.075405s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/3ec4feec-583d-44e2-9753-742b659ff59a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c78af033-adaa-4930-9dca-b0a86905d481 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "3ec4feec-583d-44e2-9753-742b659ff59a", "created_at": "2025-05-30T17:32:40.399764+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3ec4feec-583d-44e2-9753-742b659ff59a", "rel": "self"}, {"href": "http://localhost/volume/connectors/3ec4feec-583d-44e2-9753-742b659ff59a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.060572s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.092319s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/840bd932-7506-4d77-9473-a7675948ccb6 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2ae8c683-cfdf-4f8c-adc8-5de806e5ddfc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_lessee_reader_cannot_post_vendor_passthru [0.129648s] ... 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-901a2e5b-df63-40e4-9b44-14f5fdd9a9f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_admin [0.098657s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/b80e4fcc-5859-44ab-a5f4-430f61b96051 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9bcbb093-f983-4ee0-ad33-9f336471f1d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_admin [0.090570s] ... 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-806d05fe-a135-49e1-ab9e-058539975123 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_member [0.081952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/346f6277-cc4f-4367-9bc4-d0d1df8be339 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-00f3e0ac-14f1-440e-a48f-06f2dd2ae0e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_member [0.066986s] ... 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-8ad307a2-faad-4cea-8e75-d15ea796b9f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_owner_admin_cannot_put_vendor_passthru [0.153798s] ... 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-a83f7739-c4d2-48de-bc04-319d0b252971 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_patch_reader [0.066219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/e4d6d29b-5fd5-4856-b1f5-2739df8fa975 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5d847669-60b8-45a3-9105-7021c2bc2949 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_patch_service [0.083499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/43cee71c-8d27-4792-9097-2afa80a0e1e5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9b067b0d-363c-46ab-a674-06bb11448d4c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_owner_manager_cannot_put_vendor_passthru [0.144169s] ... 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-6b518f83-7198-48ab-b5d9-d1cfd436e2e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.381418s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_admin [0.083086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/88e7e2ea-3623-407b-ae5e-c77a509a80a3 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-af5225c7-86ef-4319-b47b-eca3daaf57ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.037368s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.021882s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.022790s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_229_owner_service_cannot_put_vendor_passthru [0.136243s] ... 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-60c2a36c-22c7-4c1c-b692-1fbfaf3292c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.027300s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.026566s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_member [0.134277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/5f98f4b6-a638-45ab-ac1d-22b93d7e4eda GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-72e618bf-96d0-4c0c-bdce-7323df5dea11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.032077s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.023381s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.029569s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_owner_member_cannot_put_vendor_passthru [0.132561s] ... 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-230d03f0-3f13-4c72-afc7-37f82ad07f06 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_202_nodes_volume_get_observer [0.441754s] ... 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-18a44744-f496-4e73-a612-80a0aa67a170 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.023836s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_volume_connector_id_delete_reader [0.126205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/06711dc4-ccca-4ef9-828c-20947de026e3 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a618cf05-dc99-46a4-b882-577c9fbb7c5a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.047247s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_203_nodes_volume_connectors_get_admin [0.081620s] ... 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-7448731b-4cf2-4a1d-8458-363ffa03ce60 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "040e550e-b9ac-4075-a286-bbf9bfffb96e", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/040e550e-b9ac-4075-a286-bbf9bfffb96e", "rel": "self"}, {"href": "http://localhost/volume/connectors/040e550e-b9ac-4075-a286-bbf9bfffb96e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.045772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_reader_cannot_put_vendor_passthru [0.126035s] ... 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-8b408f7a-d9a8-455b-a065-afc119710a56 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.068102s] ... 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-e22a07fb-83b1-4c17-9cff-ec37deef291f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.048947s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_220_volume_volume_connector_id_delete_service [0.138254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/d3d421f0-14ed-43cb-96a9-26d4ae6ae3ac GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2fdc866b-784f-430e-bbdd-2b5f89502869 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.049811s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_205_nodes_volume_connectors_get_observer [0.075814s] ... 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-f9571e43-4238-4237-b24e-5bbb8c05f131 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "4e884850-83e9-4323-b342-a2889e8aeee1", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/4e884850-83e9-4323-b342-a2889e8aeee1", "rel": "self"}, {"href": "http://localhost/volume/connectors/4e884850-83e9-4323-b342-a2889e8aeee1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_lessee_admin_cannot_put_vendor_passthru [0.140055s] ... 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-e2fefc8c-22e6-46fb-8f05-f383fead136c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.066088s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_206_nodes_volume_targets_get_admin [0.090496s] ... 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-3d73275b-a65c-482e-a5e1-d756a2193aef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "51f7b85a-e748-4e08-979a-e6a05a19ff66", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/51f7b85a-e748-4e08-979a-e6a05a19ff66", "rel": "self"}, {"href": "http://localhost/volume/targets/51f7b85a-e748-4e08-979a-e6a05a19ff66", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_admin [0.126272s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-626f08f8-444f-47ea-9801-3b4c314701e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "b359c8ea-90ac-439f-bb07-bdbf0be874ed", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b359c8ea-90ac-439f-bb07-bdbf0be874ed", "rel": "self"}, {"href": "http://localhost/volume/targets/b359c8ea-90ac-439f-bb07-bdbf0be874ed", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.089924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.059039s] ... 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-1365d9f3-c04d-4ef3-a00c-b54e527d75c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_put_vendor_passthru [0.121485s] ... 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-defa8e4c-d3c6-42ef-9abe-cef0ed7c6cc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.091946s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_member [0.136548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5dc8d624-38d5-416f-837e-31cef0e22b63 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "0ffd8070-dc4e-4325-8889-7f2ba6094be8", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0ffd8070-dc4e-4325-8889-7f2ba6094be8", "rel": "self"}, {"href": "http://localhost/volume/targets/0ffd8070-dc4e-4325-8889-7f2ba6094be8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_member_cannot_put_vendor_passthru [0.074212s] ... 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-bd3a5daf-f1e8-4f5e-aa6c-2fad721739b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_208_nodes_volume_targets_get_observer [0.122502s] ... 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-2838614c-7201-429f-a61c-6f37b849d90e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "33121140-5f46-4930-acaf-8a83a521cdc6", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/33121140-5f46-4930-acaf-8a83a521cdc6", "rel": "self"}, {"href": "http://localhost/volume/targets/33121140-5f46-4930-acaf-8a83a521cdc6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_put_vendor_passthru [0.088571s] ... 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-478bc1fd-d0d4-43ea-8658-45938e34063b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_volume_targets_get_reader [0.138336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2182a4bd-823d-4b66-a472-15047988ba97 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "b636c513-2d0b-436e-a6f6-702592394ac3", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b636c513-2d0b-436e-a6f6-702592394ac3", "rel": "self"}, {"href": "http://localhost/volume/targets/b636c513-2d0b-436e-a6f6-702592394ac3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.163267s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_owner_admin_cannot_delete_vendor_passthru [0.062305s] ... 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-34e23705-0097-45df-a744-69d7bc9bf778 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.127056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf2b9739-95f0-4e26-8b3b-e8d5b8fb8905 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"drivers": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_owner_manager_cannot_delete_vendor_passthru [0.061796s] ... 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-4361c0b2-76f8-43fc-9d30-6d0562204ef4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_210_drivers_get_member [0.083160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d2bc6104-3094-4f30-b7b3-a1dd5bd463e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_service_cannot_delete_vendor_passthru [0.062042s] ... 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-d94b159d-1ae4-4850-bb5a-7d8c8e3d75c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.144294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_211_drivers_get_observer [0.070763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac690371-449b-4209-bada-5dc243b9ffb3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"drivers": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_member_cannot_delete_vendor_passthru [0.060634s] ... 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-d1483636-931f-4848-9f9a-57e63968591a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_212_drivers_driver_name_get_admin [0.064267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d092093a-0bff-4f31-8057-a44e25b00fe0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.116546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_reader_cannot_delete_vendor_passthru [0.073154s] ... 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-c41c123b-8b58-40d2-93e7-50adc667f066 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_213_drivers_driver_name_get_member [0.056044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-18a2439d-d4d1-4a87-a17e-3d67a6717995 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_delete_vendor_passthru [0.068950s] ... 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-78552794-974d-4995-9137-a6290e88f2a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.070269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8b35e5ad-f655-4091-b05d-df3161341568 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_lessee_manager_cannot_delete_vendor_passthru [0.064490s] ... 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-e9036874-568f-4b1c-a488-3d320d491183 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service [0.181781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_delete_vendor_passthru [0.064711s] ... 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-07edaeae-1da4-4575-a027-e3b1f9dbfd21 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_reader_cannot_delete_vendor_passthru [0.072099s] ... 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-bbe2a4b0-feeb-44b1-a2ee-83a98cb3a9ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_215_drivers_properties_get_admin [0.220122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6936c179-49e7-4237-b506-eac446419739 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_volume_targets_get_service [0.592988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05f0d8b9-fe66-4518-85d7-fd55eea3739c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "d0706623-8961-43cf-9bae-3c2a4582cb18", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d0706623-8961-43cf-9bae-3c2a4582cb18", "rel": "self"}, {"href": "http://localhost/volume/targets/d0706623-8961-43cf-9bae-3c2a4582cb18", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.160376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_traits [0.065510s] ... 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-2a70f95f-9033-41e0-8df8-bb5c518973a5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": []} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_admin [0.073236s] ... 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/66d61506-07e8-4c2b-8db9-c2535764314e Openstack-Request-Id: req-5432a6dd-5deb-4f82-8174-3e4e3c2e935e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "66d61506-07e8-4c2b-8db9-c2535764314e", "created_at": "2025-05-30T17:32:42.347183+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/66d61506-07e8-4c2b-8db9-c2535764314e", "rel": "self"}, {"href": "http://localhost/volume/targets/66d61506-07e8-4c2b-8db9-c2535764314e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_owner_reader_get_traits_service [0.073268s] ... 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-af4ee9ef-a38b-4272-987b-73c760b9715d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_member [0.112532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-83388e03-589d-43b8-b3db-aa2526cbb422 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_power_validate_fail [0.106291s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_member [0.066281s] ... 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/4d3435d0-c683-4f0c-bc1b-8141fbf3d5cd Openstack-Request-Id: req-850783cc-a78d-4036-aa07-055688042863 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4d3435d0-c683-4f0c-bc1b-8141fbf3d5cd", "created_at": "2025-05-30T17:32:42.416356+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/4d3435d0-c683-4f0c-bc1b-8141fbf3d5cd", "rel": "self"}, {"href": "http://localhost/volume/targets/4d3435d0-c683-4f0c-bc1b-8141fbf3d5cd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service [0.076857s] ... 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/20055189-f18b-42de-8ca2-fc7dcf166994 Openstack-Request-Id: req-7ae679db-d6e2-4ee1-b770-bd863f264de1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "20055189-f18b-42de-8ca2-fc7dcf166994", "created_at": "2025-05-30T17:32:42.493638+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/20055189-f18b-42de-8ca2-fc7dcf166994", "rel": "self"}, {"href": "http://localhost/volume/targets/20055189-f18b-42de-8ca2-fc7dcf166994", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_properties_get_observer [0.141634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc277b21-b2a0-420f-b6f4-b3457b4d56a1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.116691s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project [0.066461s] ... 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/2c549f53-34e0-4c94-b918-f5766fb49e5e Openstack-Request-Id: req-00ec5d2d-1ce0-4dc5-b058-48f5826e9393 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "2c549f53-34e0-4c94-b918-f5766fb49e5e", "created_at": "2025-05-30T17:32:42.562555+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2c549f53-34e0-4c94-b918-f5766fb49e5e", "rel": "self"}, {"href": "http://localhost/volume/targets/2c549f53-34e0-4c94-b918-f5766fb49e5e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_lessee_reader_get_traits [0.238844s] ... 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-6252e84b-43a1-4a27-b4d3-79b4ec5f0fe3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"traits": []} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.100631s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_service_project_disabled [0.078253s] ... 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-c6a77e38-aa57-46c2-91fa-2b31687e07f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.120006s] ... 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-c0c488ff-94ee-4a17-b886-9747882f0ef7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_third_party_admin_cannot_get_traits [0.062833s] ... 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-15eef59e-daaa-4475-927b-bdd4008b3735 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_targets_post_service_project_admin [0.069788s] ... 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-add5ca96-adac-4718-abcc-b98d8bf91739 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.115251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_admin_can_put_traits [0.078503s] ... 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-48fe5f25-8852-41da-b48b-a3bc329683b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_targets_post_reader [0.063804s] ... 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-1fbaedd1-981d-491b-ae14-ce9b1e00c053 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.137894s] ... 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-4612f5e4-7b1d-4d6e-8f70-9804bee3eb47 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_owner_manager_can_put_traits [0.073439s] ... 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-97852bbf-7d3c-4d1e-8acb-f071108fb3af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.106011s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_admin [0.076596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/f2c401cc-1278-4467-a0d7-b50f22675064 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14fe1030-5b61-47f1-8e3e-394c12797986 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f2c401cc-1278-4467-a0d7-b50f22675064", "created_at": "2025-05-30T17:32:42.822583+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/f2c401cc-1278-4467-a0d7-b50f22675064", "rel": "self"}, {"href": "http://localhost/volume/targets/f2c401cc-1278-4467-a0d7-b50f22675064", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.126115s] ... 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-43582d78-2012-4a56-b30b-eb3db6b2f70f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_member [0.064140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/e9cb14c2-1976-4d20-b2b3-ffae54215c28 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4acfb32-19b7-42a9-883c-caefe7478a3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e9cb14c2-1976-4d20-b2b3-ffae54215c28", "created_at": "2025-05-30T17:32:42.898636+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/e9cb14c2-1976-4d20-b2b3-ffae54215c28", "rel": "self"}, {"href": "http://localhost/volume/targets/e9cb14c2-1976-4d20-b2b3-ffae54215c28", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_owner_service_can_put_traits [0.076362s] ... 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-99fc2eb7-8eab-4688-ac57-c27c347035b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.132500s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_get_reader [0.071524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/4fe0d138-e474-46b9-a01c-a7280c648890 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4b5a9a6-76d1-4e87-8e03-19a9e63b27a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4fe0d138-e474-46b9-a01c-a7280c648890", "created_at": "2025-05-30T17:32:42.962159+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/4fe0d138-e474-46b9-a01c-a7280c648890", "rel": "self"}, {"href": "http://localhost/volume/targets/4fe0d138-e474-46b9-a01c-a7280c648890", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_cannot_put_traits [0.071407s] ... 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-564c97c8-9849-44b6-a7fa-49a9aed48099 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_221_drivers_vendor_passthru_methods_get_admin [0.114704s] ... 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-ebec4173-a623-4f28-8cb5-c610866ecfc4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_get_service [0.074852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/56b38e2f-d3b5-4700-83ff-7a0b98b7b75b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0be01f5-b041-4aef-a07d-974a446f63f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "56b38e2f-d3b5-4700-83ff-7a0b98b7b75b", "created_at": "2025-05-30T17:32:43.042308+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/56b38e2f-d3b5-4700-83ff-7a0b98b7b75b", "rel": "self"}, {"href": "http://localhost/volume/targets/56b38e2f-d3b5-4700-83ff-7a0b98b7b75b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_admin_cannot_put_traits [0.086360s] ... 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-30ff506f-2b5e-4d94-bfaa-4a7bfbfcd8e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_fail [0.121331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_222_drivers_vendor_passthru_methods_get_member [0.112779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ddfbf61b-66f8-4b80-8762-9923a4a27c42 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_admin_extra [0.089349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/7cfab2bd-b127-4490-8295-77877a89d6ac WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9ca5814d-b6d0-41a0-92eb-1296b9e4df12 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_lessee_manager_cannot_put_traits [0.102631s] ... 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-cbf47605-3c2b-405f-8502-a4c6cb740988 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_wait [0.084995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_223_drivers_vendor_passthru_methods_get_observer [0.078342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bcae8e79-cdcb-4fcb-9504-f28ea59e9325 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_member_cannot_put_traits [0.072214s] ... 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-85f63a97-fc26-4a7e-9251-e6c02be890c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_patch_admin [0.109897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/75ebbd92-2254-4f26-a9cb-356e41a7f077 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-31fc6072-e896-47f2-bbc7-5e6293596664 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.095784s] ... ok 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_224_drivers_vendor_passthru_get_admin [0.064791s] ... 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-49427fbc-79fb-4b7e-add0-b55c16c1a7e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_put_traits [0.071669s] ... 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-e6b7b3a6-41b9-4383-a931-cbba9a5f4648 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.041729s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_patch_reader [0.084645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/a6901573-e74a-4231-b4e7-2949eb507886 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a84784ac-4170-454f-839f-cdf049946c51 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.073372s] ... 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-8abe4e8a-9455-488e-aaf5-1dff0b45c212 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.039203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_257_third_party_admin_cannot_put_traits_service [0.082405s] ... 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-d35a1530-f4a4-4c51-9ea7-8914bda4c235 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_226_drivers_vendor_passthru_get_observer [0.069038s] ... 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-106cdad3-5e67-42ce-9679-01a672ac57f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.092724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_258_owner_admin_can_delete_traits [0.075049s] ... 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-b0a74476-4071-4359-9b7e-fb26d4048590 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_patch_service_disabled [0.148482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/8f97f30b-7505-4114-949e-23b113bc3ecc WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-104b5042-3d75-4030-a0c9-53375a52c435 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.072805s] ... 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-6ad78187-df68-4e90-b235-134a865cc211 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.081272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_259_owner_manager_can_delete_traits [0.074737s] ... 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-bc019cca-2080-4910-b73c-d6b13297a135 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.068327s] ... 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-455f025f-9065-48fc-b394-7707f0a1339e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.069801s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_229_drivers_vendor_passthru_post_observer [0.062474s] ... 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-a26cf2c3-7244-438c-9c70-ef7659460a16 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_owner_member_cannot_delete_traits [0.076786s] ... 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-82ca3390-8847-41fb-9b30-6e52c8006c31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_volume_volume_target_id_patch_service [0.162220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/b839c076-bdd0-4ee1-9f98-9249cc70393e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-46e195ce-c74d-4fad-a451-5001ffe62665 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.053218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_261_lessee_admin_cannot_delete_traits [0.071160s] ... 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-19e69e47-81cd-4e64-a155-2acfca3cef6b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.056436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_230_drivers_vendor_passthru_put_admin [0.127062s] ... 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-b81a8253-fe7b-4d02-9932-0ac8ee422eac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.049374s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_manager_cannot_delete_traits [0.072240s] ... 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-8b1d27bb-b077-4110-a5da-b9a6d441b979 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_volume_volume_target_id_delete_admin [0.147571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/136f3e47-8805-4acb-9b1e-931a54a3b9d7 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-878428c9-2a57-482e-881e-f60791aeedac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.061060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_231_drivers_vendor_passthru_put_member [0.087255s] ... 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-9bb49fc3-f09b-4d4d-ada4-8cef4bf09e3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_lessee_member_cannot_delete_traits [0.066582s] ... 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-b4294d60-5324-4cab-869d-49054fa74997 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.049139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_232_drivers_vendor_passthru_put_observer [0.093838s] ... 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-14f71bfa-ad3d-4f8a-80af-1d5c7f66f6dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_third_party_admin_cannot_delete_traits [0.093468s] ... 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-645c3e95-951a-40ad-bdbb-61e275aae65c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_volume_volume_target_id_delete_member [0.148168s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/d3506b13-d012-46d5-8c3f-1e702dbce535 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-26b71ca7-f661-4413-99d7-11493d6771ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.067459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.106464s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_243_volume_volume_target_id_delete_reader [0.114529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/85b8daee-9a3a-409c-b069-e200a55324c6 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-de194596-73eb-4014-af87-76a983d97925 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_265_owner_admin_can_put_custom_traits [0.140011s] ... 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-6eb9638d-8e2b-4b7f-8306-b471b110d7fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_volume_volume_target_id_delete_service [0.067261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/dea84026-a40c-4894-a535-2638e4e031ca GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5fe7653c-0be6-4172-8967-e497782fd4ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_admin [0.123999s] ... 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-fae8b77b-e862-4c92-9f20-7b8adeac044c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": [{"created_at": "2025-05-30T17:32:44.108215+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.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.116787s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_245_nodes_volume_get_admin [0.072957s] ... 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-0676a2f6-98f9-499c-9b1d-b52ee6375b00 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_owner_manager_can_put_custom_traits [0.141891s] ... 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-82e25109-3e50-4d1b-85f4-d0cb0bb04d0d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_member [0.124899s] ... 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-64329fe8-7fa0-46c6-b176-907d06ceb17d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.119766s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_get_member [0.124287s] ... 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-07513cf9-e475-47b0-bd9c-c0711bfa5017 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_get_observer [0.082203s] ... 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-7df276eb-cc9b-448d-b04d-8eda122f1f28 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": [{"created_at": "2025-05-30T17:32:44.369934+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_member_cannot_put_custom_traits [0.129414s] ... 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-c18437c8-96f4-4c6e-81f1-803e0ebe563d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_get_reader [0.073723s] ... 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-3f62fc4e-b62a-467a-bf9d-32230bc913f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.113497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_238_nodes_bios_bios_setting_get_admin [0.073888s] ... 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-4ff7f5ec-1ec9-4cd4-aa3d-16f4a9e53c2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"FAKE_SETTING": {"created_at": "2025-05-30T17:32:44.439405+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.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_nodes_volume_connectors_get_admin [0.097181s] ... 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-f2d400c8-b781-427f-be3f-527b82672612 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "21c61103-2348-4a38-9f32-f551dd0998eb", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/21c61103-2348-4a38-9f32-f551dd0998eb", "rel": "self"}, {"href": "http://localhost/volume/connectors/21c61103-2348-4a38-9f32-f551dd0998eb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_cannot_put_custom_traits [0.134708s] ... 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-b115d032-cfe3-4ef3-99e3-763974dc8d21 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [0.094561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_239_nodes_bios_bios_setting_get_member [0.117735s] ... 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-012ca04a-2623-4081-816e-cf1a1fac7fa9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.060673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.054287s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_249_nodes_volume_connectors_get_member [0.169025s] ... 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-cb94c3bc-403d-4c5b-947d-c7e6f68e8e8e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "29f8909d-da30-4dad-a822-91d4ab8fbf80", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/29f8909d-da30-4dad-a822-91d4ab8fbf80", "rel": "self"}, {"href": "http://localhost/volume/connectors/29f8909d-da30-4dad-a822-91d4ab8fbf80", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.039911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_cannot_put_custom_traits [0.159685s] ... 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-c5e7105c-36b9-4e79-8ea2-c9fd76132c16 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing [0.035673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_240_nodes_bios_bios_setting_get_observer [0.156949s] ... 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-b6a94396-471c-45f1-8b63-0c0b799dbfe8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"FAKE_SETTING": {"created_at": "2025-05-30T17:32:44.717898+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"}]}} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.039007s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_250_nodes_volume_connectors_get_reader [0.129766s] ... 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-a78dc564-39d8-447d-b397-ab4e7da19e2a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "6a5a1f93-5447-4179-99aa-c4b3c434d7a2", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6a5a1f93-5447-4179-99aa-c4b3c434d7a2", "rel": "self"}, {"href": "http://localhost/volume/connectors/6a5a1f93-5447-4179-99aa-c4b3c434d7a2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_put_custom_traits [0.117147s] ... 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-9198f9c1-c4e1-43cc-a665-39e62e429daa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_241_conductors_get_admin [0.119980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35031d40-1a1e-4f54-8583-84fd7c5a10ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_put_custom_traits [0.075891s] ... 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-8de9a47e-104c-47b9-9832-92b0717cb29c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_nodes_volume_targets_get_admin [0.116681s] ... 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-c85ba68b-b0b0-42dd-afaf-88d7b79b6d37 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "0702a894-9f2c-4ca2-b09b-3e9bf01f23c7", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0702a894-9f2c-4ca2-b09b-3e9bf01f23c7", "rel": "self"}, {"href": "http://localhost/volume/targets/0702a894-9f2c-4ca2-b09b-3e9bf01f23c7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_get_vifs [0.067017s] ... 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-a301b474-446d-4666-a2e2-42238bace35e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_member [0.113002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8e75c730-2fca-4fa1-bb7d-0f3b50cbfdc9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_nodes_volume_targets_get_member [0.077117s] ... 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-f88be918-a43e-42db-8443-d45e912fdaa7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "0966e018-69b5-4a7a-b5bb-02ae264565c6", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0966e018-69b5-4a7a-b5bb-02ae264565c6", "rel": "self"}, {"href": "http://localhost/volume/targets/0966e018-69b5-4a7a-b5bb-02ae264565c6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_get_vifs [0.069964s] ... 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-c48e8770-c0fa-4be3-ad89-b03d14367150 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_get_observer [0.072037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0873873d-8506-4d49-9ae0-08188e57e544 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_nodes_volume_targets_get_reader [0.088153s] ... 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-7bedb87d-4535-45d9-b563-98a50229f610 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "a6065ab9-6b75-46b6-b56d-f43c2cc6286b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a6065ab9-6b75-46b6-b56d-f43c2cc6286b", "rel": "self"}, {"href": "http://localhost/volume/targets/a6065ab9-6b75-46b6-b56d-f43c2cc6286b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_get_vifs [0.079128s] ... 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-123d2cef-715c-404d-bb98-29061273c561 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_244_conductors_hostname_get_admin [0.071887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68cc0c9f-1395-490e-9c90-b4c471a14180 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:32:45.100171+00:00", "updated_at": "2025-05-30T17:32:45.100732+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.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_get_admin [0.079263s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c8821b0-5e3d-4f18-a768-80f06237c9d0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"drivers": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_admin_can_post_vifs [0.064241s] ... 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-dc4086b8-cad0-4948-8313-ae9f75445a93 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.454090s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_get_member [0.061898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-053bcfc2-5535-47f8-b30c-4e7523043b8e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"drivers": []} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.033435s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_service_can_post_vifs_for_own_project [0.077886s] ... 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-c453dfd3-c057-4170-b812-3d9434a0dcbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.034575s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_get_reader [0.075297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bb95dc0-2997-4929-9288-ba65c13838e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"drivers": []} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.036966s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_service_cannot_post_vifs_for_other_project [0.065511s] ... 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-59b4919a-99a3-414b-9ae0-c5e0cca4e0d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.045154s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_drivers_driver_name_get_admin [0.090989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1a74c147-6b31-475b-9f0a-3aef39242d67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_manager_can_post_vifs [0.068625s] ... 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-a3f73c2e-af00-4016-9cc9-345884c89995 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.039430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.036247s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_279_lessee_admin_can_post_vifs [0.084148s] ... 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-6a0193a3-b92d-4f6d-95cf-b668d5aca190 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.055793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_245_conductors_hostname_get_member [0.393953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b34d4de-7c49-4b11-8400-a6dca97c1d07 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_drivers_driver_name_get_member [0.120094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1df7437d-e725-43ec-ba38-4783165c2b19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.054060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_280_lessee_manager_can_post_vifs [0.082361s] ... 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-895eb661-e844-4e8e-b4ea-5ef193d69d19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.039562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_246_conductors_hostname_get_observer [0.097716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc12045f-95eb-44af-8bde-88ab60be5937 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:32:45.579340+00:00", "updated_at": "2025-05-30T17:32:45.579890+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.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.043258s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_281_owner_member_can_post_vifs [0.097674s] ... 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-c352ded2-62f7-4e27-b251-ec28adc30361 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.039065s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.081136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1c8a27d5-af61-4b53-9882-da2e73e3633d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_drivers_driver_name_get_reader [0.183407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-786fabd9-85a9-4b54-b25c-6038f4b39077 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.039260s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_member_cannot_post_vifs [0.071416s] ... 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-364e0234-7354-4c4f-87f9-d43895ac604c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_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. {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.037428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.037964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_283_owner_reader_cannot_post_vifs [0.073333s] ... 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-36062406-aaf9-4273-8358-8fead92a3747 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_249_allocations_post_observer [0.085608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2009161a-3ec6-4998-aae8-fbf04e9e5d35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_drivers_properties_get_admin [0.144960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-61835ce5-7fdf-4fde-b8a4-612e71c4d334 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.078650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_284_lessee_reader_cannot_post_vifs [0.076267s] ... 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-416069ab-8cbe-4c2d-a64a-195f3335ab2e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_250_allocations_get_admin [0.079683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5525024-df33-4427-9d2b-69ce12bba18b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "9f077818-2422-42ca-9ba7-b6d74d1b8c23", "created_at": "2025-05-30T17:32:45.886661+00:00", "updated_at": "2025-05-30T17:32:45.890633+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/9f077818-2422-42ca-9ba7-b6d74d1b8c23", "rel": "self"}, {"href": "http://localhost/allocations/9f077818-2422-42ca-9ba7-b6d74d1b8c23", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.088494s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_261_drivers_properties_get_member [0.135384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-420d5e0c-c960-45da-b8bc-659bb6db04ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_member [0.077354s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-46492671-b493-494e-b545-641e61335e9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_third_party_admin_cannot_post_vifs [0.100830s] ... 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-2efad031-9897-440d-aaf5-049339d2337c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.065931s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_262_drivers_properties_get_reader [0.060718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4fd71e3e-148c-47e1-b0ec-4589c5ebf002 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_get_observer [0.085025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f59a2f2b-7e67-4726-b9c2-ee2e08dc896c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "a046828a-a25e-4336-bdba-ec74cacc80be", "created_at": "2025-05-30T17:32:46.051584+00:00", "updated_at": "2025-05-30T17:32:46.055376+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/a046828a-a25e-4336-bdba-ec74cacc80be", "rel": "self"}, {"href": "http://localhost/allocations/a046828a-a25e-4336-bdba-ec74cacc80be", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_drivers_raid_logical_disk_properties_get_admin [0.054718s] ... 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-7dc30569-7349-473c-b51a-acd97f26e270 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [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( {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_admin_delete_vifs [0.147857s] ... 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-806130bd-df4a-446d-99d2-b6a4ff967197 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.091897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/7ecd70e2-d9cc-4362-8c34-879e619cb67e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4564c42-4670-48be-b2ec-4fba6b9c1def X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7ecd70e2-d9cc-4362-8c34-879e619cb67e", "created_at": "2025-05-30T17:32:46.144733+00:00", "updated_at": "2025-05-30T17:32:46.148589+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/7ecd70e2-d9cc-4362-8c34-879e619cb67e", "rel": "self"}, {"href": "http://localhost/allocations/7ecd70e2-d9cc-4362-8c34-879e619cb67e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.071091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_254_allocations_allocation_id_get_member [0.065650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/20ef0c17-cb1c-4f89-a53d-55aefaee7dda WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8751fbc8-1e3d-4e5c-8094-23cc7831400e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 20ef0c17-cb1c-4f89-a53d-55aefaee7dda could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template [0.071486s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_manager_delete_vifs [0.133986s] ... 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-16a90546-2465-40cd-8e7e-c2a125f0b295 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.079796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/6bf12209-72a8-4c2a-8534-15beef28ba95 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0fe1995a-7c23-4070-b773-705c13d9c404 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6bf12209-72a8-4c2a-8534-15beef28ba95", "created_at": "2025-05-30T17:32:46.288415+00:00", "updated_at": "2025-05-30T17:32:46.292246+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/6bf12209-72a8-4c2a-8534-15beef28ba95", "rel": "self"}, {"href": "http://localhost/allocations/6bf12209-72a8-4c2a-8534-15beef28ba95", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.067632s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_264_drivers_raid_logical_disk_properties_get_member [0.264996s] ... 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-39579f0a-d864-42f8-b62d-8e341bcbf2e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.070218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_256_allocations_allocation_id_patch_admin [0.094907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/34bfe4a4-71d1-4f34-82f1-cf135e3f3d4c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2cb3e04-1111-4e62-b856-38fdf602c2f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "34bfe4a4-71d1-4f34-82f1-cf135e3f3d4c", "created_at": "2025-05-30T17:32:46.370579+00:00", "updated_at": "2025-05-30T17:32:46.428411+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/34bfe4a4-71d1-4f34-82f1-cf135e3f3d4c", "rel": "self"}, {"href": "http://localhost/allocations/34bfe4a4-71d1-4f34-82f1-cf135e3f3d4c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_drivers_raid_logical_disk_properties_get_reader [0.078690s] ... 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-0ba81cbd-9877-47f9-8714-e8a7146abf2a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing [0.052312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_can_delete_vifs [0.169601s] ... 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-a55d3f69-f8a6-4687-86fc-e6c3e2375a8c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.030757s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.020642s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.083750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/bd478e5b-23cc-480d-8e01-37ce958d3205 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b5504ef-8229-430a-abf4-79b10c11bbde X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation bd478e5b-23cc-480d-8e01-37ce958d3205 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_methods_get_admin [0.080336s] ... 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-cadc6f0d-f389-4d32-b187-c38981b87059 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.017769s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.024153s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.074222s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9aa3dbc6-b668-4f6c-8a9b-64aacb649f9c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b5d7a9c-14cc-4c18-9f42-4931ea7c2057 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.017660s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_drivers_vendor_passthru_methods_get_member [0.065483s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-22bd928f-f318-4c6b-9421-6f9cc6ebb5e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.022614s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_can_delete_vifs [0.136320s] ... 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-1e3b8985-62a8-4737-903f-0850fa33dec3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.034294s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.080051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/c17ffcdc-4c97-4099-aab7-71c285c5c80e GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-93289609-4223-41e8-bf4f-c79ff2008912 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.020446s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_methods_get_reader [0.084993s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c4b742e0-f7c4-41ab-a5f1-aa689f059a69 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.017747s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_owner_member_can_delete_vifs [0.092962s] ... 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-bfdae6cc-adfa-4684-82d6-c852578e0a66 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.071476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/126cdf64-f264-454b-8da9-3582fd483577 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-10d5db40-70c0-4ea6-b341-776406cefedd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 126cdf64-f264-454b-8da9-3582fd483577 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_drivers_vendor_passthru_get_admin [0.059489s] ... 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-3b2113a4-76e6-4c4f-a04d-d3ebb7991dd3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.059007s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.076316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/3fb80809-5b5b-4d9b-92c9-776ce65b9d67 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b52df45-b69b-4169-b568-71c21a99c46a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.061702s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_get_member [0.076240s] ... 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-3a96f178-8cba-4b2d-9704-4c7a1f905ec8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.030853s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_lessee_member_cannot_delete_vifs [0.143104s] ... 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-e4168ec0-fed2-4a1d-9d43-844e6957f2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_admin [0.069228s] ... 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-b394727a-a64a-4474-8a2c-6288e73a6772 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "71794351-7ad8-4bb5-96ea-44d1ecc99d8f", "created_at": "2025-05-30T17:32:46.850434+00:00", "updated_at": "2025-05-30T17:32:46.854042+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/71794351-7ad8-4bb5-96ea-44d1ecc99d8f", "rel": "self"}, {"href": "http://localhost/allocations/71794351-7ad8-4bb5-96ea-44d1ecc99d8f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.065478s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_drivers_vendor_passthru_get_reader [0.119262s] ... 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-c53760ab-a691-4da8-b8cc-3832419d69a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_third_party_admin_cannot_delete_vifs [0.101728s] ... 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-90de2f4d-bf7f-460f-9707-95879d698340 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.040142s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_member [0.088218s] ... 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-090754fe-7751-4d2e-bf0c-35eaa7c05539 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.028927s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.030530s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_service_can_delete_vifs [0.071689s] ... 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-f4dfaac4-27c7-4b55-86a8-6f29563fe057 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_get_observer [0.079676s] ... 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-40912d83-510e-413d-b8d7-e687e467e450 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ee17e5a6-e6a6-4cd1-8456-1b3f33d594db", "created_at": "2025-05-30T17:32:47.009841+00:00", "updated_at": "2025-05-30T17:32:47.013323+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/ee17e5a6-e6a6-4cd1-8456-1b3f33d594db", "rel": "self"}, {"href": "http://localhost/allocations/ee17e5a6-e6a6-4cd1-8456-1b3f33d594db", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.028763s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_drivers_vendor_passthru_post_admin [0.131823s] ... 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-0d6efea2-7df8-4cac-9b52-8a7ddfa16516 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.034943s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.037951s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_admin [0.088851s] ... 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-f7c18e2d-dfa9-46ea-94b2-4e3e4ef5e4eb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.090081s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_post_member [0.139193s] ... 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-6b898f1e-bf94-44f4-aae8-eae45c5c7b12 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_member [0.086162s] ... 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-bf6750bd-dc61-4336-8ee0-a995f7f40d65 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.039257s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.027465s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.024674s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_nodes_allocation_delete_observer [0.099807s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1319fe3f-65c9-4f24-a7ce-0141b60a0536 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_post_reader [0.123073s] ... 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-2c4d02fc-dfd1-4a97-90f4-80beb8809199 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.042483s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.035720s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_admin [0.092692s] ... 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/3429698d-b46d-440a-888f-a177978a3106 Openstack-Request-Id: req-a4711e39-3560-43cf-8df7-ad5e92c7136f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "3429698d-b46d-440a-888f-a177978a3106", "created_at": "2025-05-30T17:32:47.427193+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3429698d-b46d-440a-888f-a177978a3106", "rel": "self"}, {"href": "http://localhost/deploy_templates/3429698d-b46d-440a-888f-a177978a3106", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.052977s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_drivers_vendor_passthru_put_admin [0.124785s] ... 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-4e860af6-d025-40b2-950c-45022a690dbb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout [0.052043s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_member [0.097801s] ... 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-7f32cc0a-d51a-4f5d-9244-ae88ebf4c2ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_service_cannot_delete_other_nodes_vifs [0.486528s] ... 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-b38ea0c5-7288-411d-9ece-6e138641379b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout_handler_call [0.027289s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.032012s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_drivers_vendor_passthru_put_member [0.123447s] ... 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-f2a0e8a1-4204-4fe7-9f29-73df1f0e7d3d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.035839s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_post_observer [0.085169s] ... 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-908304f7-aa02-495e-aa50-7e63a6df34fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.050391s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_owner_readers_can_get_indicators [0.137258s] ... 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-f5b8dd22-26c6-456f-bf6c-a1a3d4e8a70d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.040305s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_admin [0.101842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3da2d40-a4c8-407e-8219-b59bec297cda X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "4eb8ed42-6250-4d93-9f74-986b2626def4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/4eb8ed42-6250-4d93-9f74-986b2626def4", "rel": "self"}, {"href": "http://localhost/deploy_templates/4eb8ed42-6250-4d93-9f74-986b2626def4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_drivers_vendor_passthru_put_reader [0.122149s] ... 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-d3846e49-04df-4752-90ab-25e38aeb2350 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.039574s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.028944s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_member [0.080129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b22d98fc-d505-42a3-93ff-40b9b8c607aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.026423s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lesse_readers_can_get_indicators [0.138323s] ... 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-ada7b96c-65bd-4f9b-b35e-f7049741cd09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.028492s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_drivers_vendor_passthru_delete_admin [0.122745s] ... 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-69f87c79-b6bb-4aec-a588-fbb9e6a39e22 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_get_observer [0.066439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba11e15e-eebc-4abe-a99a-1f85ae8f6f30 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "4bb121e8-a5fe-4660-8b33-eed631c2b0a6", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/4bb121e8-a5fe-4660-8b33-eed631c2b0a6", "rel": "self"}, {"href": "http://localhost/deploy_templates/4bb121e8-a5fe-4660-8b33-eed631c2b0a6", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.065796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/4da0c1cf-4077-4684-a118-06182f619569 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-537fae01-8052-4391-b8a5-9649321f1f3f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "4da0c1cf-4077-4684-a118-06182f619569", "created_at": "2025-05-30T17:32:47.905523+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/4da0c1cf-4077-4684-a118-06182f619569", "rel": "self"}, {"href": "http://localhost/deploy_templates/4da0c1cf-4077-4684-a118-06182f619569", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_third_party_admin_cannot_get_indicators [0.128049s] ... 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-4ce60e1f-1cb4-49fd-884f-23b2381d9945 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_drivers_vendor_passthru_delete_member [0.120510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0efe310b-9096-45b0-99c3-e3b72c3efffa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.059517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/81c74d7a-e7f8-4c5d-9b9a-34f7956d246a WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6b586b14-0d66-447f-b389-7192b62a7287 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} 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. {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.058611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/78624408-f6eb-4cf5-a4f7-ecad7a12b291 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a5cfeab-7f63-4351-a8d0-e1e935f2301b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "78624408-f6eb-4cf5-a4f7-ecad7a12b291", "created_at": "2025-05-30T17:32:48.024532+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/78624408-f6eb-4cf5-a4f7-ecad7a12b291", "rel": "self"}, {"href": "http://localhost/deploy_templates/78624408-f6eb-4cf5-a4f7-ecad7a12b291", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_drivers_vendor_passthru_delete_reader [0.108573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-37be5a84-f2ef-4ce9-9f83-741d0be762c2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} 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. {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.094183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e6974e5e-ce48-4fa6-b590-3bbf7aeecb47 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be44d4c9-dedc-4962-949f-1c2dddad8740 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e6974e5e-ce48-4fa6-b590-3bbf7aeecb47", "created_at": "2025-05-30T17:32:48.086683+00:00", "updated_at": "2025-05-30T17:32:48.129676+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e6974e5e-ce48-4fa6-b590-3bbf7aeecb47", "rel": "self"}, {"href": "http://localhost/deploy_templates/e6974e5e-ce48-4fa6-b590-3bbf7aeecb47", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_owner_member_can_set_indicator [0.099986s] ... 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-491013d8-375d-4782-a540-290ea1c6dff3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.078031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/6be7227a-37a8-434f-92c1-04340baf2f80 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-46b2bf16-536e-407a-8eeb-4488e9c5f5f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_get_admin [0.165502s] ... 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-1d5797aa-d92f-4f78-9b2d-61c78dc5d08f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": [{"created_at": "2025-05-30T17:32:48.168706+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.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.432967s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_lessee_member_cannot_set_indicator [0.094217s] ... 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-2ea41c41-043f-4a7b-a7fb-2bc82a6cca9f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.037547s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.089760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/71477474-6341-4aba-a355-967fd2eb40d7 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-20b5cb87-a2c4-490a-b766-3363e32eaa43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.028556s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.031562s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.067794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/4aac3582-cda0-4375-a4ab-b6d891cd697c GOT Response: 204 No Content Openstack-Request-Id: req-c66a189e-2631-4adc-b9b6-3275ef5ff5bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_third_party_admin_cannot_set_indicator [0.091532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/130bf667-54a1-44c8-91cf-4237d9b18b55/management/indicators/component/magic_light WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5f147f3-67ec-4502-8ef6-965fbf24b09e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 130bf667-54a1-44c8-91cf-4237d9b18b55 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.030780s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_nodes_bios_get_member [0.162275s] ... 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-8baf4124-961e-49d9-83fa-627de3018554 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": [{"created_at": "2025-05-30T17:32:48.357375+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.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.029021s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.075537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/b464d797-a092-4a8c-b1e7-79428323c463 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-949b0044-2ce4-419f-a40f-466280f2405c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.046391s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_owner_reader_can_list_portgroups [0.096497s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9ca937a-1aa3-47f6-97c0-606a06dc9313 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "7337b9ae-f1b7-4731-bbb5-e82e8673a94f", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/7337b9ae-f1b7-4731-bbb5-e82e8673a94f", "rel": "self"}, {"href": "http://localhost/portgroups/7337b9ae-f1b7-4731-bbb5-e82e8673a94f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.034944s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.067445s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/eb843e63-5659-478f-8e80-2926da598fb3 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cb667338-cd10-477a-83cc-ff21275d31ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_nodes_bios_get_reader [0.124340s] ... 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-24cbe33f-ac04-4417-8bf7-7d30b8ab817e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": [{"created_at": "2025-05-30T17:32:48.475792+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.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.033545s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_owner_service_can_list_portgroups [0.088381s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad33c82c-39e9-4ee6-832c-c6a6dcc1bef0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "37c09c64-9de5-490c-8878-aa7c86b3d17f", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/37c09c64-9de5-490c-8878-aa7c86b3d17f", "rel": "self"}, {"href": "http://localhost/portgroups/37c09c64-9de5-490c-8878-aa7c86b3d17f", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_admin [0.072638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/44d5b9cc-e6f8-4835-a6c7-882a38e6f461 Openstack-Request-Id: req-5d47a3a3-9c42-4936-8b7d-b74a7d21a0ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "44d5b9cc-e6f8-4835-a6c7-882a38e6f461", "created_at": "2025-05-30T17:32:48.594744+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/44d5b9cc-e6f8-4835-a6c7-882a38e6f461", "rel": "self"}, {"href": "http://localhost/chassis/44d5b9cc-e6f8-4835-a6c7-882a38e6f461", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/44d5b9cc-e6f8-4835-a6c7-882a38e6f461/nodes", "rel": "self"}, {"href": "http://localhost/chassis/44d5b9cc-e6f8-4835-a6c7-882a38e6f461/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.056044s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.059490s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_member [0.072090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7834ac92-51b3-44cb-82c1-c138d8f3e53b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_nodes_bios_bios_setting_get_admin [0.160825s] ... 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-1bef05b1-7695-48ce-bd2d-e38c4362a653 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"FAKE_SETTING": {"created_at": "2025-05-30T17:32:48.634168+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_reader_can_list_portgroups [0.128890s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-580be144-72df-4045-b2aa-069f9e7ed479 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "24660336-f95f-42ae-8091-163c4e9e520c", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/24660336-f95f-42ae-8091-163c4e9e520c", "rel": "self"}, {"href": "http://localhost/portgroups/24660336-f95f-42ae-8091-163c4e9e520c", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_post_observer [0.069710s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-75b88f2a-2bbc-46f5-bbdc-475043c608ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.072273s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_nodes_bios_bios_setting_get_member [0.094236s] ... 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-164b200c-8c45-436f-9412-9385f83ee7be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"FAKE_SETTING": {"created_at": "2025-05-30T17:32:48.748055+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"}]}} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_admin [0.061348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5335b3a-a7aa-4104-9c4c-2d7c4ddbf7ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_306_third_party_admin_cannot_list_portgroups [0.096966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27797dad-4050-40d9-93cc-2b22cb741476 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": []} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.087062s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_nodes_bios_bios_setting_get_reader [0.075933s] ... 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-bb306a45-b1c7-42cc-9f98-6370868d8082 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"FAKE_SETTING": {"created_at": "2025-05-30T17:32:48.844886+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_owner_reader_can_read_portgroup [0.092013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b849eda8-a684-48f7-a90a-3f66855ed334 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-05-30T17:32:48.851045+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"}]} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_no_worker [0.093746s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_lessee_reader_can_read_portgroup [0.087936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/85dbd2b0-5103-4f0d-8b97-6d6a67e2fdc0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3862228e-1c01-4c35-8ac7-b35856900ab1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "85dbd2b0-5103-4f0d-8b97-6d6a67e2fdc0", "created_at": "2025-05-30T17:32:48.954707+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/85dbd2b0-5103-4f0d-8b97-6d6a67e2fdc0", "rel": "self"}, {"href": "http://localhost/portgroups/85dbd2b0-5103-4f0d-8b97-6d6a67e2fdc0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/85dbd2b0-5103-4f0d-8b97-6d6a67e2fdc0/ports", "rel": "self"}, {"href": "http://localhost/portgroups/85dbd2b0-5103-4f0d-8b97-6d6a67e2fdc0/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_other_error [0.067969s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_get_admin [0.129355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c310ac6c-8b0d-4ed2-afd5-cd1f0bbc8719 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_member [0.258301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3ee5a2bc-ce93-4e0a-9010-4badc5713967 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.056992s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_third_party_admin_cannot_read_portgroup [0.088498s] ... 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-afb80ace-afb1-4eb9-bbd8-c9b0d374a75e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_conductors_get_member [0.088314s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73a5cd90-adf9-477d-b5b0-3f9573a384df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}]} {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.043576s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none [0.032403s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_get_observer [0.103284s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-733f2cac-0146-4262-97a2-9233b1c1700f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.032494s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_conductors_get_reader [0.090477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5fd39edc-ba71-4a0a-b788-671422b67f71 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_can_add_portgroup [0.115070s] ... 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/65df3ba4-66de-482c-b567-799e38a761ef Openstack-Request-Id: req-4843d43e-b094-4316-b2dd-959bd2242386 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "65df3ba4-66de-482c-b567-799e38a761ef", "created_at": "2025-05-30T17:32:49.196680+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/65df3ba4-66de-482c-b567-799e38a761ef", "rel": "self"}, {"href": "http://localhost/portgroups/65df3ba4-66de-482c-b567-799e38a761ef", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/65df3ba4-66de-482c-b567-799e38a761ef/ports", "rel": "self"}, {"href": "http://localhost/portgroups/65df3ba4-66de-482c-b567-799e38a761ef/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.063954s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_conductors_hostname_get_admin [0.070416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f066d5e4-90cf-4907-a1ac-e6dd95181004 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:32:49.227583+00:00", "updated_at": "2025-05-30T17:32:49.228188+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} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_admin [0.088648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-623e72c2-3bdf-4f0d-8c1e-969c158a6e25 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:49.216255+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.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_service_can_add_portgroup [0.072073s] ... 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/aa0dc040-62a3-492d-9fc2-647f1a793e1e Openstack-Request-Id: req-7cf0279a-ddab-49aa-8bd1-5eddcca2d5a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "aa0dc040-62a3-492d-9fc2-647f1a793e1e", "created_at": "2025-05-30T17:32:49.270716+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/aa0dc040-62a3-492d-9fc2-647f1a793e1e", "rel": "self"}, {"href": "http://localhost/portgroups/aa0dc040-62a3-492d-9fc2-647f1a793e1e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/aa0dc040-62a3-492d-9fc2-647f1a793e1e/ports", "rel": "self"}, {"href": "http://localhost/portgroups/aa0dc040-62a3-492d-9fc2-647f1a793e1e/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_member [0.062659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-652a4959-4bc6-4a6e-adb1-cfe59fa361da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.055949s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_conductors_hostname_get_member [0.077628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd9e8808-ef35-4789-b29f-fcbc57822cf2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:32:49.300158+00:00", "updated_at": "2025-05-30T17:32:49.300691+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} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_detail_get_observer [0.059479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3d221e8-4290-46a8-95ef-bd4527a0203b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:49.352525+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.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.065098s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_manager_can_add_portgroup [0.102439s] ... 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/6e2ed278-4c5d-4456-9432-d8b72edfc37c Openstack-Request-Id: req-3d92bb13-1627-4070-96a4-d520b0846140 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6e2ed278-4c5d-4456-9432-d8b72edfc37c", "created_at": "2025-05-30T17:32:49.384199+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/6e2ed278-4c5d-4456-9432-d8b72edfc37c", "rel": "self"}, {"href": "http://localhost/portgroups/6e2ed278-4c5d-4456-9432-d8b72edfc37c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6e2ed278-4c5d-4456-9432-d8b72edfc37c/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6e2ed278-4c5d-4456-9432-d8b72edfc37c/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_conductors_hostname_get_reader [0.092735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b168783-dd5f-47f2-b28a-b25e96cffb01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"created_at": "2025-05-30T17:32:49.366469+00:00", "updated_at": "2025-05-30T17:32:49.366991+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} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.069012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-619265e4-32a7-4d39-b2b0-f1113eedc4af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:49.418765+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.test_acl.TestRBACProjectScoped.test_project_scoped_313_owner_member_cannot_add_portgroup [0.080127s] ... 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-34f5bfc9-de2e-4e53-a6fa-ae96bffe3649 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_member [0.067432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7db355a8-b447-4c90-8a2e-61922051b1af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.144299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_admin_cannot_add_portgroup [0.069244s] ... 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-848ab883-324c-4539-9bac-059f2481cd79 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.061941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-715d5a15-f08e-4dfb-be42-0845c48de4ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:49.552225+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.test_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_post_admin [0.165473s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-129d2a4c-c459-4701-a149-2e4706b3a429 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.089728s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.076493s] ... 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-2a99868b-97e5-4d09-9a7f-9fe4fcfa82e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:49.614483+00:00", "updated_at": "2025-05-30T17:32:49.649514+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_manager_cannot_add_portgroup [0.137713s] ... 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-51605645-e06b-42f1-b422-5335532df2e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_allocations_post_member [0.136146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b899f9f8-53cd-4755-a237-e0da0ca4c4e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.075483s] ... 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-a4da2d78-dc6f-483c-abe1-747921a10eb7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.128536s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_295_allocations_post_reader [0.083151s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ab95aea-654f-4b8a-898d-d9bf1797e27e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.099685s] ... 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-e050f723-2e7f-4fd7-9d52-2586da188edc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.071744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_316_lessee_member_cannot_add_portgroup [0.159839s] ... 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-7e0bb290-373f-4300-a01f-c9d3951a0182 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.066254s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_get_admin [0.110013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-761af1d2-f1f3-4524-8499-2832ec9d2eba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "25d19740-68af-4bfe-ac45-6606ecac376f", "created_at": "2025-05-30T17:32:49.852054+00:00", "updated_at": "2025-05-30T17:32:49.856583+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/25d19740-68af-4bfe-ac45-6606ecac376f", "rel": "self"}, {"href": "http://localhost/allocations/25d19740-68af-4bfe-ac45-6606ecac376f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.116066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-ab61d3fd-4da8-4e5b-8a65-5321d8dbb50a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_disable_power_off [0.056919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_317_third_party_admin_cannot_add_portgroup [0.141952s] ... 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-5fb00162-e9d9-4b60-a5b0-bbac57b1ffff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.086985s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d8d3c0cb-5644-4a85-bacd-d012138f761c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_allocations_get_member [0.115494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90f84e86-7c0c-4275-aed5-57debd16c5f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "06dd801c-ee39-41d7-9217-be5f0af9072f", "created_at": "2025-05-30T17:32:49.953290+00:00", "updated_at": "2025-05-30T17:32:49.957385+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/06dd801c-ee39-41d7-9217-be5f0af9072f", "rel": "self"}, {"href": "http://localhost/allocations/06dd801c-ee39-41d7-9217-be5f0af9072f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.084506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_admin_can_modify_portgroup [0.075875s] ... 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-29e861bb-b7bd-425d-af7e-813bc9dc40a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.079969s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8bd4ffa5-f31a-48b3-8a3e-273d5ce10053 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_manager_can_modify_portgroup [0.077643s] ... 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-39163ef7-b72e-4813-bf6a-47b46fcba35c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.116561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_301_node_history_get_admin [0.098948s] ... 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-7976113a-6186-4608-9318-df126445a1d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "c6fa3e17-f577-4217-9f43-2e0637e69cf6", "created_at": "2025-05-30T17:32:50.183185+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c6fa3e17-f577-4217-9f43-2e0637e69cf6", "rel": "self"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_allocations_get_reader [0.175317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-973071f6-81dc-4b5a-8b93-d7d8bf044f60 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "e2a2cd13-7c77-45b3-8d85-dde962ee83d5", "created_at": "2025-05-30T17:32:50.092863+00:00", "updated_at": "2025-05-30T17:32:50.108556+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/e2a2cd13-7c77-45b3-8d85-dde962ee83d5", "rel": "self"}, {"href": "http://localhost/allocations/e2a2cd13-7c77-45b3-8d85-dde962ee83d5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_owner_member_cannot_modify_portgroup [0.076519s] ... 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-f56f64ca-1ede-41a7-be09-9e0cb8449895 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.083828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_302_node_history_get_member [0.070081s] ... 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-fd7bcc5e-6a2e-4526-8f55-8bc56ed50273 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.049205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_303_node_history_get_observer [0.077057s] ... 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-bb836eaf-f873-4710-b481-e77816c0e709 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "7883d4da-0962-46eb-8d33-7091d4a6a18c", "created_at": "2025-05-30T17:32:50.330454+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7883d4da-0962-46eb-8d33-7091d4a6a18c", "rel": "self"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_admin_cannot_modify_portgroup [0.131347s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/4eef5b76-f941-49b6-ae41-5afdc8993c64 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9be52c1b-c3fd-4c1c-b1fc-b6f6f9def40a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_allocations_allocation_id_get_admin [0.156084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/0f5a68ca-6ea2-4365-86c5-ce63acd1babb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa2358d0-8e6e-4309-9b3b-18fc5a47bb2a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0f5a68ca-6ea2-4365-86c5-ce63acd1babb", "created_at": "2025-05-30T17:32:50.296121+00:00", "updated_at": "2025-05-30T17:32:50.299635+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/0f5a68ca-6ea2-4365-86c5-ce63acd1babb", "rel": "self"}, {"href": "http://localhost/allocations/0f5a68ca-6ea2-4365-86c5-ce63acd1babb", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.072451s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_300_allocations_allocation_id_get_member [0.075697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e97d02e4-7c82-4e33-a545-0a9abfa54152 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4da46281-44c8-43c5-9a33-bc2e4182c5ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e97d02e4-7c82-4e33-a545-0a9abfa54152", "created_at": "2025-05-30T17:32:50.416078+00:00", "updated_at": "2025-05-30T17:32:50.419621+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/e97d02e4-7c82-4e33-a545-0a9abfa54152", "rel": "self"}, {"href": "http://localhost/allocations/e97d02e4-7c82-4e33-a545-0a9abfa54152", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.101419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_304_node_history_get_entry_admin [0.127373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b4149d61-e842-44ea-833d-51a19c095380 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98cd0c48-9d4e-4901-b1da-407fa2366935 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b4149d61-e842-44ea-833d-51a19c095380", "created_at": "2025-05-30T17:32:50.437001+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/b4149d61-e842-44ea-833d-51a19c095380", "rel": "self"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_allocations_allocation_id_get_reader [0.071610s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8eb8a15f-178c-4705-b597-d8e1a1b856f0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf621956-0804-44dc-aff3-8be43c6b6aa6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "8eb8a15f-178c-4705-b597-d8e1a1b856f0", "created_at": "2025-05-30T17:32:50.478972+00:00", "updated_at": "2025-05-30T17:32:50.492779+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/8eb8a15f-178c-4705-b597-d8e1a1b856f0", "rel": "self"}, {"href": "http://localhost/allocations/8eb8a15f-178c-4705-b597-d8e1a1b856f0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.046114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_manager_cannot_modify_portgroup [0.173099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/a5c251ed-4f39-4241-9cd6-7746a1efa67e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1c004d78-02fc-4d28-a64c-448368e2c06d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.060190s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_patch_admin [0.079922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/795b3ea9-87de-40ad-a66c-1b523bbab9c9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15dade4c-f924-49b0-8ee0-4feac1a2541f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "795b3ea9-87de-40ad-a66c-1b523bbab9c9", "created_at": "2025-05-30T17:32:50.548081+00:00", "updated_at": "2025-05-30T17:32:50.595246+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/795b3ea9-87de-40ad-a66c-1b523bbab9c9", "rel": "self"}, {"href": "http://localhost/allocations/795b3ea9-87de-40ad-a66c-1b523bbab9c9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_member [0.144275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4cbb5830-e669-4c35-ba3a-60323118d1cd WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f1ec7474-289a-469e-b573-2f9ab3a1e655 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_lessee_member_cannot_modify_portgroup [0.106569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/a2a274e4-b08e-4eaa-9a78-8f2a6e904b9c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0c718a5d-0f10-4a67-897f-dc7a6087d580 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_allocations_allocation_id_patch_member [0.077625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/79d30dba-5809-485b-aac1-865bbc817e9c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c169955-0a12-4548-a503-7b9660c8aaf1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "79d30dba-5809-485b-aac1-865bbc817e9c", "created_at": "2025-05-30T17:32:50.631069+00:00", "updated_at": "2025-05-30T17:32:50.675125+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/79d30dba-5809-485b-aac1-865bbc817e9c", "rel": "self"}, {"href": "http://localhost/allocations/79d30dba-5809-485b-aac1-865bbc817e9c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_306_node_history_get_entry_observer [0.072824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cf4f293f-769a-4119-b077-8f25d06fadc2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b32bbabb-d73c-45be-bef8-5f1d0b0cec9e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cf4f293f-769a-4119-b077-8f25d06fadc2", "created_at": "2025-05-30T17:32:50.685095+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/cf4f293f-769a-4119-b077-8f25d06fadc2", "rel": "self"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_allocations_allocation_id_patch_reader [0.067010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/419349a3-36e6-431b-a407-722bb000941a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b07572e2-dd5f-4bf0-9197-d51aabe4dc83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_third_party_admin_cannot_modify_portgroup [0.103257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/869b3a49-aef4-4b03-aad8-cc3dc806e046 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b7a5207-acd3-463e-8933-740f0a07984b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 869b3a49-aef4-4b03-aad8-cc3dc806e046 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.049378s] ... ok {2} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.049741s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_305_allocations_allocation_id_delete_admin [0.088073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/cfaa3024-7247-4345-93ca-85fd7dea224e GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fe7bf197-7088-42bd-a8c0-d55829edfed6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_admin_can_delete_portgroup [0.086056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-521f9ad6-453e-4dda-b3af-e09d1b737e5f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.052970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcd99908-956a-4fcb-a5b2-f1a117099210 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}, "versions": [{"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]} {2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.047430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd83d0b5-2737-45ef-9645-6f15f47b805a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}, "versions": [{"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_306_allocations_allocation_id_delete_member [0.107429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/45f72341-96e3-41bd-be28-b1322d28b59f GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-44e3eb44-c42a-48bd-a236-e00bc8f99615 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_manager_can_delete_portgroup [0.098650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3045ab32-4c64-4ef0-bcfd-0b5eb4f634d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_datetime_format [0.044813s] ... ok {2} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_uuid_format [0.034905s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_already [0.419286s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_307_allocations_allocation_id_delete_reader [0.074831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/8a856640-1f09-4b0a-97fb-5a95cd08356e GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-51859f0c-4bbd-4920-8785-c26cedf4f936 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_owner_member_cannot_delete_portgroup [0.092526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0d227ccd-5806-492b-8ac3-b0a5ff79d4ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.052614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ foo() migrated 15 of 15 objects. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.048713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_308_nodes_allocation_get_admin [0.089793s] ... 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-bb0d3ad4-30c5-41fa-90d3-6e9ed7cb4c1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9126b1aa-940c-41db-a6ad-a06904044b49", "created_at": "2025-05-30T17:32:51.044811+00:00", "updated_at": "2025-05-30T17:32:51.048199+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/9126b1aa-940c-41db-a6ad-a06904044b49", "rel": "self"}, {"href": "http://localhost/allocations/9126b1aa-940c-41db-a6ad-a06904044b49", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_owner_service_can_delete_portgroup [0.084089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1f81ccac-a77e-46fe-a7d5-d6bb988b006c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.029114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.027797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 15 objects. {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_309_nodes_allocation_get_member [0.065833s] ... 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-8bd68a08-9126-4432-ba92-71817ef54698 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cb6b4a66-1730-47a3-85d7-bc66c4510925", "created_at": "2025-05-30T17:32:51.134715+00:00", "updated_at": "2025-05-30T17:32:51.139321+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/cb6b4a66-1730-47a3-85d7-bc66c4510925", "rel": "self"}, {"href": "http://localhost/allocations/cb6b4a66-1730-47a3-85d7-bc66c4510925", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.035446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_admin_cannot_delete_portgroup [0.093017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/79c4077f-4baf-458e-9884-65276b8230bb GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-250a0aba-00b5-4e54-b4cb-6a68b15db7e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.031773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ Error while running foo: bar. {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_nodes_allocation_get_reader [0.066505s] ... 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-ff83d021-bee8-4292-8e69-8f633d247e4f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9d84fbd2-0620-4b7e-ad42-f5429adbc247", "created_at": "2025-05-30T17:32:51.203371+00:00", "updated_at": "2025-05-30T17:32:51.206871+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/9d84fbd2-0620-4b7e-ad42-f5429adbc247", "rel": "self"}, {"href": "http://localhost/allocations/9d84fbd2-0620-4b7e-ad42-f5429adbc247", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.033786s] ... ok {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.024558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_lessee_manager_cannot_delete_portgroup [0.080299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/1bab920a-47ee-4115-8a0f-07a257b14ad2 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cd9395a2-dca6-4c17-bafb-8d22e1c2d89a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.021604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.021715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.022850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.020833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1key1=value1 {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_lessee_member_cannot_delete_portgroup [0.083211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/9aa01e73-82cb-4c0c-9b7d-aa5d8bcbbd19 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef22b4c6-30d3-40ff-8023-3bfcec313adb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.027477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1.key1value1 {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.021513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ "max-count" must be a positive value. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.022148s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Data migrations have not completed. Please re-run. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.023368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_third_party_admin_cannot_delete_portgroup [0.102547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/0c09dd1a-2b02-4423-95d5-b5f4cf723b00 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0484a6e0-10a3-4169-9bca-a782b6655694 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 0c09dd1a-2b02-4423-95d5-b5f4cf723b00 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.031830s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_nodes_allocation_delete_admin [0.273662s] ... 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-32197aae-2a44-43ca-a478-22a8ac55cec4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.034176s] ... ok {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.032010s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_nodes_allocation_delete_member [0.072432s] ... 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-92c5a47d-ffb3-4739-9d5d-bfea150e3f7d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.032050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ This is bad {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_service_cannot_delete_portgroup [0.112952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/45a62f00-b2bb-4a6e-aa4d-1b1f9a58d418 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1285fa77-c068-4a60-9587-3f1949f34d67 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 45a62f00-b2bb-4a6e-aa4d-1b1f9a58d418 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid [0.017268s] ... ok {2} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.016723s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_nodes_allocation_delete_reader [0.070214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c95f18f7-e737-4212-8a08-07c91c837899 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.027709s] ... ok {2} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.031643s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_node_portgroups [0.087237s] ... 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-12e6ec3b-2090-4d5a-a9b6-59e35f3e3c90 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum [0.017334s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_314_deploy_templates_post_admin [0.077527s] ... 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/acd4b370-c645-401c-b379-c0e246b845c0 Openstack-Request-Id: req-561b5f9b-128d-4c7d-b7bc-48acddff1db9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "acd4b370-c645-401c-b379-c0e246b845c0", "created_at": "2025-05-30T17:32:51.736504+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/acd4b370-c645-401c-b379-c0e246b845c0", "rel": "self"}, {"href": "http://localhost/deploy_templates/acd4b370-c645-401c-b379-c0e246b845c0", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_glance [0.020873s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_http_url [0.016630s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_https_url [0.020825s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_not_allowed [0.017480s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha256 [0.016197s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_node_porgtroups [0.109040s] ... 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-d228330f-90b7-4b93-952a-747dd078728e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"portgroups": [{"uuid": "3c913cc9-96fd-4345-83c2-9877461c048a", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/3c913cc9-96fd-4345-83c2-9877461c048a", "rel": "self"}, {"href": "http://localhost/portgroups/3c913cc9-96fd-4345-83c2-9877461c048a", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_315_deploy_templates_post_member [0.086699s] ... 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-f4ef2bb9-6b8e-4659-8322-70376e73ee42 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha512 [0.031019s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_no_checksum_file_url [0.017704s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url [0.015545s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_316_deploy_templates_post_reader [0.064803s] ... 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-ee6519a5-be10-4c7f-bcb4-6cefc65848ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_file [0.026606s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_string [0.017270s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_portgroups [0.106418s] ... 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-5954ea40-6ec9-4b66-81c7-f3e2ba55f0ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum [0.016582s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_get_admin [0.085167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd2b6dae-ca1c-46b2-ad93-424b2c8f900c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "d49f662c-1b60-4ada-93f7-798a4b960fcb", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d49f662c-1b60-4ada-93f7-798a4b960fcb", "rel": "self"}, {"href": "http://localhost/deploy_templates/d49f662c-1b60-4ada-93f7-798a4b960fcb", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_get_member [0.110095s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-443596a1-76c4-448a-b100-affb14e3e7cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "ef4a0123-369f-4555-ab0c-b13e30ab5dd2", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ef4a0123-369f-4555-ab0c-b13e30ab5dd2", "rel": "self"}, {"href": "http://localhost/deploy_templates/ef4a0123-369f-4555-ab0c-b13e30ab5dd2", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_get_reader [0.072667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bffd7d26-bc84-4bad-a0a5-c7f7c650b29a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"deploy_templates": [{"uuid": "aadef0e1-53a4-436c-b83b-47032ae55712", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/aadef0e1-53a4-436c-b83b-47032ae55712", "rel": "self"}, {"href": "http://localhost/deploy_templates/aadef0e1-53a4-436c-b83b-47032ae55712", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_service_cannot_get_portgroups [0.238121s] ... 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-d0eae4dc-92a6-4d9c-9c99-f3df3f82c58a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum_invalid [0.233938s] ... ok {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.017481s] ... ok {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.017199s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_get_admin [0.056867s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e169329b-0168-459f-a57e-7a351599c7c3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7a92ab6-4e54-4793-81e6-b62206a20a62 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e169329b-0168-459f-a57e-7a351599c7c3", "created_at": "2025-05-30T17:32:52.195458+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e169329b-0168-459f-a57e-7a351599c7c3", "rel": "self"}, {"href": "http://localhost/deploy_templates/e169329b-0168-459f-a57e-7a351599c7c3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_owner_reader_can_list_ports [0.060158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd365221-73da-48d0-b1f2-502f60c41f9e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "211051bf-5d62-450c-bc78-904a0a93a1f5", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/211051bf-5d62-450c-bc78-904a0a93a1f5", "rel": "self"}, {"href": "http://localhost/ports/211051bf-5d62-450c-bc78-904a0a93a1f5", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_get_member [0.058674s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/09cc4cd4-c013-49c9-a482-53dc65cd57b9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14b11dab-934b-4162-8938-cd4c9afac353 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "09cc4cd4-c013-49c9-a482-53dc65cd57b9", "created_at": "2025-05-30T17:32:52.253339+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/09cc4cd4-c013-49c9-a482-53dc65cd57b9", "rel": "self"}, {"href": "http://localhost/deploy_templates/09cc4cd4-c013-49c9-a482-53dc65cd57b9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_can_list_ports [0.070250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6903275f-5451-4afc-bb5b-6832ffee2655 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "909dfc40-bbc2-4658-b941-db0743198389", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/909dfc40-bbc2-4658-b941-db0743198389", "rel": "self"}, {"href": "http://localhost/ports/909dfc40-bbc2-4658-b941-db0743198389", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_lessee_reader_can_list_ports [0.055600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9a41540-8e00-4c23-94d8-9e6d4898b33b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "d2216301-d35e-4617-90cb-023e8ca3ca97", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d2216301-d35e-4617-90cb-023e8ca3ca97", "rel": "self"}, {"href": "http://localhost/ports/d2216301-d35e-4617-90cb-023e8ca3ca97", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_get_reader [0.092718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/27e6625c-374b-41fd-b731-fdd3a9fe5e78 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47a3c6a4-a92d-4503-9dd8-d80ace897c95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "27e6625c-374b-41fd-b731-fdd3a9fe5e78", "created_at": "2025-05-30T17:32:52.317461+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/27e6625c-374b-41fd-b731-fdd3a9fe5e78", "rel": "self"}, {"href": "http://localhost/deploy_templates/27e6625c-374b-41fd-b731-fdd3a9fe5e78", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_third_party_admin_cannot_list_ports [0.056227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f142d951-ad93-4def-8cc0-dac02a5e3e8e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_patch_admin [0.089568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b0cf9e43-72a4-4a6c-b401-a2700548b669 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dba1c28e-bea6-43fd-aba9-93d14cb30959 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b0cf9e43-72a4-4a6c-b401-a2700548b669", "created_at": "2025-05-30T17:32:52.413822+00:00", "updated_at": "2025-05-30T17:32:52.454231+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b0cf9e43-72a4-4a6c-b401-a2700548b669", "rel": "self"}, {"href": "http://localhost/deploy_templates/b0cf9e43-72a4-4a6c-b401-a2700548b669", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_owner_reader_can_read_port [0.061358s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18735e28-cf78-49e0-89cb-57d00696b0fc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-30T17:32:52.450347+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.api.test_acl.TestRBACScopedRequests.test_system_scoped_324_deploy_templates_deploy_template_id_patch_member [0.064973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/30746c3d-fae1-4c3d-a264-961fe0f9892e WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-29520ad0-f8ae-43b6-85d0-59fe9ffafd2e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_owner_service_can_read_port [0.103634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddd6f136-74a2-464c-978e-5306ddc8cdfa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-30T17:32:52.535842+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.api.test_acl.TestRBACScopedRequests.test_system_scoped_325_deploy_templates_deploy_template_id_patch_reader [0.087521s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/bc25ed40-00ac-4272-aaa1-0025bf1a5126 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-376097c1-1292-4f7b-8121-6dc5dc1ec1e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_lessee_reader_can_read_port [0.070900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/c20967de-2406-447b-a508-4c9706d48153 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-929a4c15-aa6d-449a-b060-931e6d76161a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c20967de-2406-447b-a508-4c9706d48153", "created_at": "2025-05-30T17:32:52.631592+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/c20967de-2406-447b-a508-4c9706d48153", "rel": "self"}, {"href": "http://localhost/ports/c20967de-2406-447b-a508-4c9706d48153", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_326_deploy_templates_deploy_template_id_delete_admin [0.069396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/51bffb17-f923-4eac-8c62-bf17735d75d9 GOT Response: 204 No Content Openstack-Request-Id: req-5de8774c-e345-47e1-96f1-055841d5d21c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.503241s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_third_party_admin_cannot_read_port [0.065641s] ... 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-6bae9a90-fd25-4335-84b4-3a8584f70f04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_327_deploy_templates_deploy_template_id_delete_member [0.055018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/cb4be19f-cd33-414c-b90d-e8f4769f83bc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0baed053-6f34-461d-a2bf-89752ae17622 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_deploy_templates_deploy_template_id_delete_reader [0.059762s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/62e805cd-bba4-4be4-a6ad-7ac9bb7cb1bc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-559cc90f-94e8-4ba9-bae2-2f921031e628 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_owner_admin_can_add_ports [0.081395s] ... 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-fa81269f-9edb-4f1e-991e-bc6d67e56bf6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_post_admin [0.097893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/9e62fff2-0fa5-4928-8f3b-07f3b38ba55b Openstack-Request-Id: req-1cee3383-e367-4aa6-ba5b-8af30849d7c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9e62fff2-0fa5-4928-8f3b-07f3b38ba55b", "created_at": "2025-05-30T17:32:52.894066+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/9e62fff2-0fa5-4928-8f3b-07f3b38ba55b", "rel": "self"}, {"href": "http://localhost/chassis/9e62fff2-0fa5-4928-8f3b-07f3b38ba55b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/9e62fff2-0fa5-4928-8f3b-07f3b38ba55b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/9e62fff2-0fa5-4928-8f3b-07f3b38ba55b/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_owner_manager_can_add_ports [0.080030s] ... 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-605293f8-8ca6-4f64-8bb5-8916f02f322c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_post_member [0.059495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-332294d8-52ae-43b5-b903-95441eb3f760 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_owner_admin_cannot_add_ports_to_other_nodes [0.075539s] ... 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-69b55e98-9b85-4ce3-9013-fa820d3faf97 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_post_reader [0.069546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9bad480f-e6bd-4116-885c-eaaaa05335b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_manager_cannot_add_ports_to_other_nodes [0.075004s] ... 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-3db574ab-db94-4c3f-81b4-39770eb7c2ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_332_chassis_get_admin [0.058116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-30650b5b-9396-4c31-8f61-ff915cd10bbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked [2.095151s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_service_cannot_add_ports_to_other_nodes [0.076478s] ... 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-08e7692c-49ef-41a1-81aa-143245494069 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_get_member [0.057775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5bb48821-3ebc-406d-8820-ca846b7b0708 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_351_owner_member_cannot_add_port [0.073684s] ... 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-7aad4495-f27c-4eed-a3ec-5129ed839fcb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_334_chassis_get_reader [0.061401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6332a601-3614-4fa1-bc72-b51b885f358e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_get_service [0.065248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5381b9d-653e-4b56-b10a-805589703d69 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_admin_cannot_add_port [0.098902s] ... 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-d3a5e69d-f2a8-42a3-92cc-7bc6018187f0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_336_chassis_detail_get_admin [0.065258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c72a05f9-9c84-41cf-8364-c9ee69f45ebb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:53.306582+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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent [0.229190s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_lessee_manager_cannot_add_port [0.083438s] ... 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-e24107e6-5afc-4826-9cd5-275ea2c081e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_detail_get_member [0.060461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e4bd724-bdd6-45ad-b31d-e62b251705d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:53.375884+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_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [0.733180s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_lessee_member_cannot_add_port [0.079388s] ... 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-20ad0731-db03-40fd-919f-0f6d8f0a5022 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_detail_get_reader [0.086077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99734ea2-b56c-4191-80f2-0d155aa25658 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:53.461833+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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent_child_remains [0.141907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_355_third_party_admin_cannot_add_port [0.078541s] ... 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-adff126d-234e-42c8-b1fc-61a66571da6d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_get_admin [0.107224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c26503c-f38b-4729-8944-fc206028e595 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:53.544805+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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token [0.109224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_356_service_can_add_port [0.087894s] ... 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-a9543467-e2bf-4f8f-9c62-0aa555d72d92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.086401s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_get_member [0.119690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0cee4e40-a96f-4cac-8f99-4f35f9884677 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:53.664931+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.test_acl.TestRBACProjectScoped.test_project_scoped_357_service_cannot_add_ports_to_other_project [0.068869s] ... 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-a62e4b57-ea77-4ab0-abd6-95d6a9fcb669 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.100765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_admin_can_modify_port [0.101527s] ... 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-17139a9e-df96-452f-9c69-8fbb6b8adb80 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_get_reader [0.133608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f70455f-53f4-429b-8bf9-6de5aeb3d496 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:53.786332+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.test_acl.TestRBACProjectScoped.test_project_scoped_359_owner_manager_can_modify_port [0.082600s] ... 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-86c49197-245e-4242-9bf7-1e79ed2c395d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_patch_admin [0.123043s] ... 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-b533a963-04f7-4aa4-949b-ff4beb184fcf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:53.913530+00:00", "updated_at": "2025-05-30T17:32:53.967201+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_owner_service_can_modify_port [0.091574s] ... 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-7ecd1c26-2e9a-4323-8e6d-22f88b9af00c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_owner_member_cannot_modify_port [0.069190s] ... 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-7d1f158d-de37-46c7-91a5-77fadd2c1d52 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [0.667498s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_patch_member [0.170407s] ... 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-805ce08c-00f1-4de2-b4f2-949d142153f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-30T17:32:54.044364+00:00", "updated_at": "2025-05-30T17:32:54.135202+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_lessee_admin_cannot_modify_port [0.063079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/76b1e389-49b6-4725-913e-f5ff4bb7d988 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4c7e61d5-746d-4122-946b-cee53f45b368 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_lessee_manager_cannot_modify_port [0.075773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/d6374c1d-e07a-456a-9c39-954b64b0c6df WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eac31134-17ad-46fa-8eae-92e87d1f6757 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_lessee_member_cannot_modify_port [0.062733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/0d294084-e6a2-4125-9b99-ab1db7c8ff07 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c26e50fc-3521-4123-ac63-b71bef23793c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_chassis_chassis_id_patch_reader [0.187213s] ... 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-e81c207e-858b-4d5a-aa6e-437be1fd6222 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_modify_port [0.076928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/07811f75-241f-4cb9-9c8e-fa8cd54dcd68 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a0ced4ef-4a74-44aa-a156-2d6aa0ba4b36 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 07811f75-241f-4cb9-9c8e-fa8cd54dcd68 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_owner_admin_can_delete_port [0.058368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f2060866-8fcc-403f-9547-5d159bb8d503 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_chassis_chassis_id_delete_admin [0.148893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-6c913d4d-6470-465e-8fc2-489a40c09c82 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_owner_manager_can_delete_port [0.075709s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1784db34-2c07-44d7-9f26-4ff92753f9ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_chassis_chassis_id_delete_member [0.075524s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7bfd244a-0c0b-42ef-bf85-00dbe3580a3d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_owner_service_can_delete_port [0.060555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ed2e8e89-2ba5-4ff2-bee0-30f997ef0c83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_owner_member_cannot_delete_port [0.060207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8dd59039-d241-4d78-971f-dfe4df7d045c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_347_chassis_chassis_id_delete_reader [0.123723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cbb9dd59-f5f4-48ca-b1ca-fa95777e4dc2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_lessee_admin_cannot_delete_port [0.069987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/09b8fcd0-3dc0-442e-97d7-86906dbbcd68 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8c015e0c-6bcb-4525-8451-a4443d2fa526 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [0.621639s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.019738s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.018120s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.016699s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files [0.020207s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_348_chassis_chassis_id_delete_service [0.123932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d51110bf-fe15-41d6-bc27-f234fa6d90f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.023763s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_lessee_manager_cannot_delete_port [0.123586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/01176cdd-1888-4342-960b-6add4e76bd20 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7fea742e-498b-465a-8713-481d65133bfa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_349_node_history_get_admin [0.123935s] ... 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-841cea8d-5890-4e54-9ee5-04ced23e06b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "c77a5851-1910-4acd-818e-fc97e7c22f42", "created_at": "2025-05-30T17:32:54.915362+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c77a5851-1910-4acd-818e-fc97e7c22f42", "rel": "self"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_member_cannot_delete_port [0.126106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/a40bc857-b4ef-4e09-9677-b2d4dc40cdfd GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-73d991be-3cfa-434b-9d83-aeb4f37fe5da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_350_node_history_get_member [0.105060s] ... 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-b70cbe76-ee89-4574-ae7a-bb69a742158d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "48e9e38b-1b3d-4f1b-a5a2-3b1c3b746752", "created_at": "2025-05-30T17:32:55.032569+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/48e9e38b-1b3d-4f1b-a5a2-3b1c3b746752", "rel": "self"}]}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.251346s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.019334s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_third_party_admin_cannot_delete_port [0.125503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/637066ff-730b-4a58-9766-ee79e482be83 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c621927b-2bfb-4860-beb2-17efe5cc981e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 637066ff-730b-4a58-9766-ee79e482be83 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.019691s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.021608s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.022813s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.019063s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_history_get_reader [0.120227s] ... 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-6180b405-4613-417e-801b-9934901063c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "9a7663a6-e218-4fd9-a4e5-3fddb294dd11", "created_at": "2025-05-30T17:32:55.157263+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9a7663a6-e218-4fd9-a4e5-3fddb294dd11", "rel": "self"}]}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.021623s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.018277s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.021053s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_owner_reader_can_get_node_ports [0.133206s] ... 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-0c141f85-1e02-4ed7-a02e-08a3b489f43e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.020226s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.022158s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.024539s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_history_get_service [0.129066s] ... 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-f2321c13-a0e1-4b62-a10a-21ed0a2b791b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "308003f8-d2fa-4770-86ee-3e0f980a88e3", "created_at": "2025-05-30T17:32:55.277151+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/308003f8-d2fa-4770-86ee-3e0f980a88e3", "rel": "self"}]}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.024560s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.020842s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.021461s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_owner_service_can_get_node_ports [0.126345s] ... 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-a25d2444-efb4-4416-8fc1-707d692e23e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.019775s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.019594s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_admin [0.116029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/33d7edcc-9bf4-495d-a58a-e2d7d090b1fe WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbf8a5d3-5110-4488-bda0-cb423b98ebdc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "33d7edcc-9bf4-495d-a58a-e2d7d090b1fe", "created_at": "2025-05-30T17:32:55.408372+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/33d7edcc-9bf4-495d-a58a-e2d7d090b1fe", "rel": "self"}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [0.021035s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.022556s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.019806s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_lessee_reader_can_get_node_port [0.129722s] ... 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-755b238d-31c8-46fd-b5e3-a5c4be8750af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": [{"uuid": "98e7d8da-0729-4056-9c54-2e01993fabc7", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/98e7d8da-0729-4056-9c54-2e01993fabc7", "rel": "self"}, {"href": "http://localhost/ports/98e7d8da-0729-4056-9c54-2e01993fabc7", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.047749s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_354_node_history_get_entry_member [0.120622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/13b9abae-172a-461f-8aed-b1000355a100 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2284dff3-d97f-4ce6-bcec-711ea46d8385 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "13b9abae-172a-461f-8aed-b1000355a100", "created_at": "2025-05-30T17:32:55.538183+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/13b9abae-172a-461f-8aed-b1000355a100", "rel": "self"}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.028718s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.040977s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_third_party_admin_cannot_get_ports [0.093407s] ... 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-08bf01ef-983e-4584-a326-c737790366db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_node_history_get_entry_reader [0.068254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b24b5786-15a7-413c-88aa-d49bb96dd659 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81275f11-6051-490f-bfde-5b0b66c2298c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b24b5786-15a7-413c-88aa-d49bb96dd659", "created_at": "2025-05-30T17:32:55.613571+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/b24b5786-15a7-413c-88aa-d49bb96dd659", "rel": "self"}]} {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.042448s] ... ok {2} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.027127s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_356_node_inventory_get_admin [0.056883s] ... 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-1c70d295-f9d3-4ab3-8120-4fbf023e2a56 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_all_conditions_fail [0.043164s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_357_node_inventory_get_reader [0.063877s] ... 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-eebde737-0d92-4278-a867-906c7347fe77 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_ironic_exception [0.046888s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_358_node_history_get_entry_service [0.062904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/29886768-e325-4a11-9457-e8fb7210a4ab WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2742aeb-b1f4-4944-910a-336ffcfa138e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "29886768-e325-4a11-9457-e8fb7210a4ab", "created_at": "2025-05-30T17:32:55.795154+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/29886768-e325-4a11-9457-e8fb7210a4ab", "rel": "self"}]} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_no_rules [0.053765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestApplyRules.test_apply_rules_some_conditions_pass [0.039388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestApplyRules.test_apply_rules_success [0.039203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked [2.113413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestApplyRules.test_apply_rules_with_always_mask [0.052145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestApplyRules.test_apply_rules_with_never_mask [0.053302s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestApplyRules.test_apply_rules_with_sensitive_mask [0.055636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_mdns.ParseEndpointTestCase.test_resolve [0.021661s] ... ok {2} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple [0.016293s] ... ok {2} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple_https [0.019024s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.202008s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_359_shard_get_shards [0.312371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67930b37-0ab0-492b-97c6-8560859ef0cb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"shards": [{"name": "None", "count": 3}]} {2} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_with_path_and_port [0.017129s] ... ok {2} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.061737s] ... ok 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_shard_patch_set_node_shard [0.104689s] ... 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-55c1091c-a6f1-458d-a0a0-6c99ff115991 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_parent_off [0.121042s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_361_shard_patch_set_node_shard_disallowed [0.061014s] ... 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-42bc7a8c-ca50-459d-877a-9c24b116a9d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [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.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_service_cannot_get_ports [0.753154s] ... 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-49157466-0eed-4387-be3c-68f8c9c24ba3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_parent_node_patch_by_admin [0.118802s] ... 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-03498820-9f19-482e-a991-f5a1396cef18 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_with_parent [0.114655s] ... ok 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.NodePowerActionTestCase.test_node_power_action_power_reboot [0.050510s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_379_owner_reader_can_get_ports_by_portgroup [0.143944s] ... 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-ada58265-4cbd-4b65-bb0e-7e26e8b05415 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot_with_disable_power_off [0.056057s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_363_parent_node_patch_by_member [0.156080s] ... 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-364373bf-311e-4934-baba-d8c0c7203e38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.061309s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_364_parent_node_patch_by_reader [0.080148s] ... 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-4e3f05cd-a75b-4585-bc18-086e9a884705 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.047333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_service_cam_get_ports_by_portgroup [0.142280s] ... 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-acc8904c-44a7-40b0-bf97-d2ca7292a8b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.050607s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_365_nodes_firmware_component_get_admin [0.104070s] ... 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-91240efd-3540-4d3d-86eb-b5fc5b3d8122 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"firmware": [{"created_at": "2025-05-30T17:32:56.720896+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.077939s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_reader_can_get_ports_by_portgroup [0.146363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/74fb0760-6593-4086-9693-ed4d7836739f/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e6fddc8-5979-4aa1-a340-bdf1a23c0a03 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"ports": []} {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.037136s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_366_nodes_firmware_component_get_member [0.087906s] ... 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-2cfc510b-ac95-4bc9-9be2-823273d8f37b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"firmware": [{"created_at": "2025-05-30T17:32:56.807603+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.052631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.035133s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_367_nodes_firmware_component_get_reader [0.090177s] ... 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-a00b54c9-8e1e-4c8e-9310-9f663544e57f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"firmware": [{"created_at": "2025-05-30T17:32:56.911905+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.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_get_ports_by_portgroup [0.123839s] ... 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-0238e951-6f39-4a9b-8c28-61fa45ac84db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.038289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.036782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.040557s] ... ok 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_acl.TestRBACScopedRequests.test_system_scoped_368_runbooks_post_admin [0.120022s] ... 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/7f8442a1-bb18-405b-a8ec-2263f7fe0ef1 Openstack-Request-Id: req-7c410d70-953f-4569-878d-86697d78dcdd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7f8442a1-bb18-405b-a8ec-2263f7fe0ef1", "created_at": "2025-05-30T17:32:57.054351+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7f8442a1-bb18-405b-a8ec-2263f7fe0ef1", "rel": "self"}, {"href": "http://localhost/runbooks/7f8442a1-bb18-405b-a8ec-2263f7fe0ef1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.034242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_383_service_cannot_get_ports_by_portgroup [0.127117s] ... 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-5d5561cc-c68c-404e-849a-e8d16c883cba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.039402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.037898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.017393s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.016460s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.016256s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.015537s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.016780s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_owner_reader_can_list_volume_connectors [0.179305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7cb2413-29fa-479f-b2b9-c762c6d60cef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "ca9a727b-f40f-43f3-8098-4bb4838201b2", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ca9a727b-f40f-43f3-8098-4bb4838201b2", "rel": "self"}, {"href": "http://localhost/volume/connectors/ca9a727b-f40f-43f3-8098-4bb4838201b2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.025471s] ... ok {1} ironic.tests.unit.conf.test_types.ExplicitAbsolutePath.test_explicit_absolute_path [0.018435s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_369_runbooks_post_member [0.219609s] ... 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/c61dd40a-6b10-455a-b0d6-bef5cc7273d9 Openstack-Request-Id: req-0c3cab28-92df-4043-9810-03e103a84d74 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "c61dd40a-6b10-455a-b0d6-bef5cc7273d9", "created_at": "2025-05-30T17:32:57.267051+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c61dd40a-6b10-455a-b0d6-bef5cc7273d9", "rel": "self"}, {"href": "http://localhost/runbooks/c61dd40a-6b10-455a-b0d6-bef5cc7273d9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.console.container.test_console_container.TestConsoleContainerFactory.test_factory [0.016448s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_name [0.018247s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_path [0.023942s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__host_port [0.024132s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__reload [0.022867s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_370_runbooks_post_reader [0.109037s] ... 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-e8a3b345-3491-4cc2-8243-3e05837b833d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__start [0.018978s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__stop [0.017596s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_lessee_reader_can_list_volume_connectors [0.182478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d99e96a-80c2-4da6-a27e-595ab890a9df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "2b34a5b8-665f-4d50-9071-c7b58993af1f", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2b34a5b8-665f-4d50-9071-c7b58993af1f", "rel": "self"}, {"href": "http://localhost/volume/connectors/2b34a5b8-665f-4d50-9071-c7b58993af1f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__unit_name [0.019225s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__write_container_file [0.017994s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [1.268473s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_371_runbooks_get_admin [0.081732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-694446d4-f14b-458a-831d-317a47dbaf6f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "27200aea-1648-4c5a-9800-86392e2a1300", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/27200aea-1648-4c5a-9800-86392e2a1300", "rel": "self"}, {"href": "http://localhost/runbooks/27200aea-1648-4c5a-9800-86392e2a1300", "rel": "bookmark"}]}]} {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_delete_container_file [0.020551s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_start_stop_container [0.030832s] ... ok {1} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_stop_all_containers [0.028695s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_372_runbooks_get_member [0.079088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a98a005d-2481-4d8f-83a4-16fea715e029 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "8b734883-127c-435e-8f75-0066f56a91b9", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/8b734883-127c-435e-8f75-0066f56a91b9", "rel": "self"}, {"href": "http://localhost/runbooks/8b734883-127c-435e-8f75-0066f56a91b9", "rel": "bookmark"}]}]} {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_fail [0.029349s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_third_party_admin_cannot_get_connector_list [0.134316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3d1a393-bd7f-4deb-8bf1-eb977c4c9298 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": []} {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_ok [0.030786s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_373_runbooks_get_reader [0.067171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-296c7759-6f2d-4ab5-bbe4-0fead7a2442f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "de5ab60d-d121-42f9-a161-5848ecd5136f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/de5ab60d-d121-42f9-a161-5848ecd5136f", "rel": "self"}, {"href": "http://localhost/runbooks/de5ab60d-d121-42f9-a161-5848ecd5136f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_374_runbooks_runbook_id_get_admin [0.078117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/281584d5-754c-4e13-8216-0fedd179147f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9b80f2f-b22c-44ae-9dad-9bba79bb5b00 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "281584d5-754c-4e13-8216-0fedd179147f", "created_at": "2025-05-30T17:32:57.684764+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/281584d5-754c-4e13-8216-0fedd179147f", "rel": "self"}, {"href": "http://localhost/runbooks/281584d5-754c-4e13-8216-0fedd179147f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_owner_admin_can_post_volume_connector [0.140112s] ... 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/d4c31366-0349-430d-8d07-b790ce125f3f Openstack-Request-Id: req-8fd64105-33cd-495d-97f9-90af44d4a628 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "d4c31366-0349-430d-8d07-b790ce125f3f", "created_at": "2025-05-30T17:32:57.699985+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/d4c31366-0349-430d-8d07-b790ce125f3f", "rel": "self"}, {"href": "http://localhost/volume/connectors/d4c31366-0349-430d-8d07-b790ce125f3f", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_375_runbooks_runbook_id_get_member [0.090723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/cd4265e1-41cb-4d0e-a1b7-5b249be74099 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c834e92f-7352-429d-b35a-dfb9ac7afc01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "cd4265e1-41cb-4d0e-a1b7-5b249be74099", "created_at": "2025-05-30T17:32:57.778816+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cd4265e1-41cb-4d0e-a1b7-5b249be74099", "rel": "self"}, {"href": "http://localhost/runbooks/cd4265e1-41cb-4d0e-a1b7-5b249be74099", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_priority [0.203176s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_ok [0.018819s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_unknown [0.015866s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_376_runbooks_runbook_id_get_reader [0.075177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/6b99033d-ef33-4ed7-af55-73adf001f966 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-801ca399-17e2-4393-871b-bb2661243577 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6b99033d-ef33-4ed7-af55-73adf001f966", "created_at": "2025-05-30T17:32:57.855685+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6b99033d-ef33-4ed7-af55-73adf001f966", "rel": "self"}, {"href": "http://localhost/runbooks/6b99033d-ef33-4ed7-af55-73adf001f966", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_post_volume_connector [0.170064s] ... 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/ba404bd5-6117-4415-a062-e80c38fd8eaa Openstack-Request-Id: req-02275204-1627-4705-a8c2-07a26482355a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ba404bd5-6117-4415-a062-e80c38fd8eaa", "created_at": "2025-05-30T17:32:57.864108+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/ba404bd5-6117-4415-a062-e80c38fd8eaa", "rel": "self"}, {"href": "http://localhost/volume/connectors/ba404bd5-6117-4415-a062-e80c38fd8eaa", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db [0.067677s] ... ok {1} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db_instance_not_found [0.061735s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_377_runbooks_runbook_id_patch_admin [0.103166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/30335243-13a1-4a1d-b8cc-a1a4f4846b40 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5823300-bd75-4dc2-b431-608312255294 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "30335243-13a1-4a1d-b8cc-a1a4f4846b40", "created_at": "2025-05-30T17:32:57.928345+00:00", "updated_at": "2025-05-30T17:32:57.965756+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/30335243-13a1-4a1d-b8cc-a1a4f4846b40", "rel": "self"}, {"href": "http://localhost/runbooks/30335243-13a1-4a1d-b8cc-a1a4f4846b40", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.065578s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_378_runbooks_runbook_id_patch_member [0.106122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9c306f10-b8a6-4c25-94ae-2542f373c78e WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b52c0d3-474f-4624-96a4-fb07d7c80c6f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9c306f10-b8a6-4c25-94ae-2542f373c78e", "created_at": "2025-05-30T17:32:58.026953+00:00", "updated_at": "2025-05-30T17:32:58.073079+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9c306f10-b8a6-4c25-94ae-2542f373c78e", "rel": "self"}, {"href": "http://localhost/runbooks/9c306f10-b8a6-4c25-94ae-2542f373c78e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_service_can_post_volume_connector [0.214018s] ... 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/3229a6ec-cf43-4b69-afbc-4bebee6fd4a4 Openstack-Request-Id: req-2e7a6342-4598-42c8-9eb6-1d74e2173cb8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "3229a6ec-cf43-4b69-afbc-4bebee6fd4a4", "created_at": "2025-05-30T17:32:58.092013+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/3229a6ec-cf43-4b69-afbc-4bebee6fd4a4", "rel": "self"}, {"href": "http://localhost/volume/connectors/3229a6ec-cf43-4b69-afbc-4bebee6fd4a4", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.062551s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.047060s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_379_runbooks_runbook_id_patch_reader [0.110444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9481d90a-3a2b-4569-81f1-31266a08aa80 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d4e33254-2c74-43f4-8416-7b06243c4842 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_admin_cannot_post_volume_connector [0.164434s] ... 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-0b97b7ab-8d33-4873-b47a-7e7440763e28 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.122830s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_380_runbooks_runbook_id_patch_public_admin [0.092304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e51657cc-5198-4b7a-bc9d-c29999f0c648 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23a0929a-015d-4388-bab6-b29209f15f97 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e51657cc-5198-4b7a-bc9d-c29999f0c648", "created_at": "2025-05-30T17:32:58.248095+00:00", "updated_at": "2025-05-30T17:32:58.276102+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e51657cc-5198-4b7a-bc9d-c29999f0c648", "rel": "self"}, {"href": "http://localhost/runbooks/e51657cc-5198-4b7a-bc9d-c29999f0c648", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.102965s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_lessee_manager_cannot_post_volume_connector [0.136784s] ... 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-389c0bff-e56e-4df0-8e4b-f9931bd76b92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_381_runbooks_runbook_id_patch_public_member [0.112809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ba1efc87-7377-4bb8-9d46-de2cca071ddb WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2fef9ed-4e55-4183-a8ab-02b112a0f2d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ba1efc87-7377-4bb8-9d46-de2cca071ddb", "created_at": "2025-05-30T17:32:58.346068+00:00", "updated_at": "2025-05-30T17:32:58.387186+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ba1efc87-7377-4bb8-9d46-de2cca071ddb", "rel": "self"}, {"href": "http://localhost/runbooks/ba1efc87-7377-4bb8-9d46-de2cca071ddb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.085215s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_post_volume_connector [0.092567s] ... 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-65aafb69-8dd6-47bb-9b9b-5b8777db7d6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.031706s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.024992s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_382_runbooks_runbook_id_patch_public_reader [0.122440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a4003374-e03f-4b15-b6d5-775f6772b41a WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7df0ff5a-1e38-4b32-88eb-5d1d34e70dc8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.040852s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_service_admin_cannot_post_volume_connector [0.087828s] ... 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-23c0bfd0-c309-4214-b319-d514a2dd63cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.045439s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_383_runbooks_runbook_id_patch_owner_admin [0.101006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/308d083b-85d9-48ea-b554-656be1766cd5 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3b79a37-f0bb-4235-87cd-fe42f0cdb6b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "308d083b-85d9-48ea-b554-656be1766cd5", "created_at": "2025-05-30T17:32:58.604048+00:00", "updated_at": "2025-05-30T17:32:58.629101+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/308d083b-85d9-48ea-b554-656be1766cd5", "rel": "self"}, {"href": "http://localhost/runbooks/308d083b-85d9-48ea-b554-656be1766cd5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_reader_can_get_volume_connector [0.084835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/9f6edd9a-6ba5-4704-bf96-b0c2b09ba52a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d186d5d2-244a-4840-8514-c44d47a5b818 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9f6edd9a-6ba5-4704-bf96-b0c2b09ba52a", "created_at": "2025-05-30T17:32:58.633822+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9f6edd9a-6ba5-4704-bf96-b0c2b09ba52a", "rel": "self"}, {"href": "http://localhost/volume/connectors/9f6edd9a-6ba5-4704-bf96-b0c2b09ba52a", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.062359s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_384_runbooks_runbook_id_patch_owner_member [0.080285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a69355b3-3ea8-46f0-b006-94d0c5fe125e WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58c52f54-01eb-43f2-9e08-33c68383afc7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "a69355b3-3ea8-46f0-b006-94d0c5fe125e", "created_at": "2025-05-30T17:32:58.691139+00:00", "updated_at": "2025-05-30T17:32:58.713815+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a69355b3-3ea8-46f0-b006-94d0c5fe125e", "rel": "self"}, {"href": "http://localhost/runbooks/a69355b3-3ea8-46f0-b006-94d0c5fe125e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.043173s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_lessee_reader_can_get_volume_connector [0.113323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/6b91b2f2-7f7d-459e-9727-5e9a0f68cee2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd5ed84f-610b-4dab-adc8-5f1168035117 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6b91b2f2-7f7d-459e-9727-5e9a0f68cee2", "created_at": "2025-05-30T17:32:58.718289+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6b91b2f2-7f7d-459e-9727-5e9a0f68cee2", "rel": "self"}, {"href": "http://localhost/volume/connectors/6b91b2f2-7f7d-459e-9727-5e9a0f68cee2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_385_runbooks_runbook_id_patch_owner_reader [0.059478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/41c7d46b-43ec-409d-9ec5-7887f01b803f WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-97b7e059-b7b1-4bdd-94c4-d3a9c5aa2329 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.060152s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.060101s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_386_runbooks_runbook_id_delete_admin [0.069227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/6d6de1d8-8a0a-40b1-b405-2994d6633962 GOT Response: 204 No Content Openstack-Request-Id: req-0807aea6-41a7-4e10-aee0-27fe258f8c5a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_third_party_admin_cannot_get_volume_connector [0.072843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/68036b19-ae20-4203-ae54-6473d3ad8bfa WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-76da3626-fd64-4858-a032-e831a6660dcc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 68036b19-ae20-4203-ae54-6473d3ad8bfa could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [1.400835s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.049404s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_387_runbooks_runbook_id_delete_member [0.057224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/60b85053-afef-407c-a847-df2c79f9f830 GOT Response: 204 No Content Openstack-Request-Id: req-e606ce13-0abb-4d44-9c1f-3524ce25a412 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_lessee_member_cannot_patch_volume_connectors_extra [0.085818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/036e0d7a-8303-4e78-8d31-735c239f652f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-be6b7226-491d-4945-9209-255a301398f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.047076s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_388_runbooks_runbook_id_delete_reader [0.058661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/9da9d5cd-0365-4276-a68f-2967e3036a5c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2d25f854-d672-4eae-9282-a46f332d9a15 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.044582s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_389_runbooks_post_project_admin [0.061726s] ... 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/e045343e-cde8-4acd-9603-ae3ee120d108 Openstack-Request-Id: req-3c70fbd2-007f-489d-bafa-13c9755a99cb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e045343e-cde8-4acd-9603-ae3ee120d108", "created_at": "2025-05-30T17:32:59.031546+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/e045343e-cde8-4acd-9603-ae3ee120d108", "rel": "self"}, {"href": "http://localhost/runbooks/e045343e-cde8-4acd-9603-ae3ee120d108", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_admin_can_patch_volume_connectors [0.106133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/985f62f6-33be-4575-a36f-044ef6a8421f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-97feb6c3-b30e-4c5c-81ed-4ff2f909100c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.077567s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_390_public_runbooks_post_admin [0.078718s] ... 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/6bcf89ef-f890-4ba9-a6b2-8bd6922ff45f Openstack-Request-Id: req-f6c4b13c-aedb-42ed-80b8-ef01d16ef7d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6bcf89ef-f890-4ba9-a6b2-8bd6922ff45f", "created_at": "2025-05-30T17:32:59.111202+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6bcf89ef-f890-4ba9-a6b2-8bd6922ff45f", "rel": "self"}, {"href": "http://localhost/runbooks/6bcf89ef-f890-4ba9-a6b2-8bd6922ff45f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.065902s] ... ok {0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.019902s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_owner_manager_can_patch_volume_connectors [0.095602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/49906319-d9bf-4560-bdec-fc1231659f70 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f862ae52-9c60-4361-892e-73102ece7818 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.021449s] ... ok {0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature [0.018125s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.053522s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.035844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b0de48f2-cdab-4d32-87d1-da8bad82a49c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.026883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4f00bc49-9560-467c-b046-2fe6aca79816 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.061115s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.024598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-62f325ff-9826-4914-bc8c-bb8f6995617a X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.022466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1a68daa4-255d-4042-b244-43d3d634f771 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {1} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.046283s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_lessee_admin_cannot_patch_volume_connectors [0.173435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/a030fcb5-2d65-4859-940a-d93c71ad8332 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-051d1e46-7ad8-4791-b3ef-af125542dea2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.029770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-adcf8c59-c743-4e16-8f38-49960256afcf X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.db.test_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.057025s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.029216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-542c60ed-ba05-4ee1-aaaa-703f8ebdec9e X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.025732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0b4130b4-3e54-4a4e-9b90-7df1c5c13895 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.dev142/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.dev142/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\"}"} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.058325s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.032626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-159554b6-e856-4eb6-b12d-8df1e29d8f5c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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}"} {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.022479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4365b90a-2c30-46ae-b85d-7cf0aef06e84 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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 [0.037024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e802e12b-a8cf-4d60-a747-4a84b58563c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.test_acl.TestRBACProjectScoped.test_project_scoped_401_lessee_manager_can_patch_volume_connectors [0.163213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/7133004d-507d-4533-ad92-fd5d4cb05fa0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cf3c31ac-a9ee-437d-b1c7-431147569c39 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_tracebacks [0.051117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ac7d9041-60e9-454d-ad65-b65d677365bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.dev142/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.dev142/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.test_acl.TestRBACProjectScoped.test_project_scoped_402_owner_member_can_patch_volume_connectors [0.088677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/65afa4fa-24b6-4a35-8471-57a36a9b46d8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c41cf710-39de-4ec9-909b-b416ed721e26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.038871s] ... ok {0} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.050212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50b663c8-06f6-484b-aa8d-9670954e2769 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_lessee_member_cannot_patch_volume_connectors [0.080539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/f817074b-d13e-4bee-8fcb-465d20e6448e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dc6c6fdc-83f9-4eaf-a27f-419ebdcc0d31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.275526s] ... ok {0} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.059570s] ... 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}} {0} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.051719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9543b7d9-0ade-4854-9825-db4e4ef9fe9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_third_party_admin_cannot_patch_volume_connectors [0.099069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/7aa4f82b-bcc2-445a-b275-76f2534b3fcf WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-728f6e3a-6559-4a56-9de7-c06355a95f6c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 7aa4f82b-bcc2-445a-b275-76f2534b3fcf could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.072429s] ... ok {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.040842s] ... ok {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.055277s] ... ok {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.044514s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_volume_connectors [0.127919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/ed9f6dc8-30ae-4bca-ae63-d0731d7000c7 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-49e31fc9-20ce-4ee0-a352-a317fdaff6ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.036732s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_volume_connectors [0.119964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/6e46d53b-3c9b-46c8-b404-489d0a771d47 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4842d55-925c-4fca-988f-d2d5f677b5b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.325610s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_owner_service_can_delete_volume_connectors [0.097978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/456c82d0-a248-4131-beab-65334625588e GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b6ddf41a-9c55-48c7-8348-da324b68e806 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.057258s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_admin_can_delete_volume_connectors [0.077354s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/9cbf391a-1938-407c-ac3b-c7c0b15aa511 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4d621163-cebd-4a17-a83c-f2dacddcb410 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [1.312100s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_lessee_manager_can_delete_volume_connectors [0.070412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/f9d0d25b-b5c0-444a-a3e1-1d83d65682fe GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3e2089d3-8710-4a1a-8b26-3257193bd8d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_third_party_admin_cannot_delete_volume_connector [0.072998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/eebc8ebb-3c82-4818-85a9-dda84ee65fe8 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-83c74577-5903-415a-a7c3-c7f42165e138 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector eebc8ebb-3c82-4818-85a9-dda84ee65fe8 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_service_cannot_delete_volume_connector [0.067307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/f456676c-ba21-4978-a5a1-312887049f41 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1df1daf-e477-464a-b24e-a6960e6d5749 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector f456676c-ba21-4978-a5a1-312887049f41 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.306727s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.060807s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_412_owner_reader_can_get_targets [0.164471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf5984d6-e3fb-4d32-8d9a-501e5cf8f5de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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": "913c4b47-6f50-40f2-a75f-b84b729bf6b9", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/913c4b47-6f50-40f2-a75f-b84b729bf6b9", "rel": "self"}, {"href": "http://localhost/volume/targets/913c4b47-6f50-40f2-a75f-b84b729bf6b9", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.044995s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.050241s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_lesse_reader_can_get_targets [0.092350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d53ff91b-e902-44b3-a581-ec9ad6085bad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "a55639c3-df3a-4f7e-a1d5-0d0fbaca8c34", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a55639c3-df3a-4f7e-a1d5-0d0fbaca8c34", "rel": "self"}, {"href": "http://localhost/volume/targets/a55639c3-df3a-4f7e-a1d5-0d0fbaca8c34", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.067014s] ... ok {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions [0.768213s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.034062s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_third_party_admin_cannot_get_target_list [0.067215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2460aa08-b2ee-4360-9f88-c0a08561c202 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": []} {0} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.052002s] ... ok {0} ironic.tests.unit.common.test_args.ValidateTypesTest.test_types [0.041404s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_owner_reader_can_get_volume_target [0.096671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/7eb65d3e-fefe-4506-a772-3fda844248ba WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b62a10e-7de9-43b4-8bff-36ba2cbbfe08 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7eb65d3e-fefe-4506-a772-3fda844248ba", "created_at": "2025-05-30T17:33:00.775465+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/7eb65d3e-fefe-4506-a772-3fda844248ba", "rel": "self"}, {"href": "http://localhost/volume/targets/7eb65d3e-fefe-4506-a772-3fda844248ba", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum [0.030996s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_file_not_found [0.034816s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_hashlib_not_supports_algo [0.046571s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_lessee_reader_can_get_volume_target [0.110913s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/90705ca2-3d58-4a67-a031-985df11bd55f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c16cac7-5a51-4932-97e7-325c665822f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "90705ca2-3d58-4a67-a031-985df11bd55f", "created_at": "2025-05-30T17:33:00.890490+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/90705ca2-3d58-4a67-a031-985df11bd55f", "rel": "self"}, {"href": "http://localhost/volume/targets/90705ca2-3d58-4a67-a031-985df11bd55f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mismatch [0.040099s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case [0.024845s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.303113s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case_delimited [0.052776s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.040664s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_md5 [0.031688s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.022173s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.031755s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.061680s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.049902s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.041564s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.052149s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.050732s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.024140s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.021544s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.050313s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.021884s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.024255s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.060054s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.040023s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.024444s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.044748s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create [0.019417s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_name [0.020447s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.056094s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_uuid [0.021784s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_invalid_step_no_interface [0.038976s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_417_third_party_admin_cannot_get_volume_target [0.566516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/e921852e-9e9e-4bce-bde4-28ce83890f19 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-98b5266f-81b7-4a3f-9b7f-c5bf3bfe4c9b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e921852e-9e9e-4bce-bde4-28ce83890f19 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_no_steps [0.024610s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [1.325985s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.088816s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_destroy [0.027433s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_id [0.024658s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.049180s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_name [0.026620s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.059400s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_owner_admin_create_volume_target [0.112494s] ... 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/9a7327d3-3cb2-4fd0-995c-9bb8d5c62549 Openstack-Request-Id: req-ae4c1f04-e46d-4902-837c-757520079796 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9a7327d3-3cb2-4fd0-995c-9bb8d5c62549", "created_at": "2025-05-30T17:33:01.587706+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9a7327d3-3cb2-4fd0-995c-9bb8d5c62549", "rel": "self"}, {"href": "http://localhost/volume/targets/9a7327d3-3cb2-4fd0-995c-9bb8d5c62549", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_uuid [0.037243s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.055829s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list [0.026149s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.078656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names [0.023973s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names_no_match [0.022730s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_owner_service_create_volume_target [0.078633s] ... 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/9fbba7a0-7537-48a2-849d-7d6774625c94 Openstack-Request-Id: req-0bbb57a7-737e-4da1-8e4d-d3fe6896546b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "9fbba7a0-7537-48a2-849d-7d6774625c94", "created_at": "2025-05-30T17:33:01.679730+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9fbba7a0-7537-48a2-849d-7d6774625c94", "rel": "self"}, {"href": "http://localhost/volume/targets/9fbba7a0-7537-48a2-849d-7d6774625c94", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.056033s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_sorted [0.025249s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.068444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_runbooks.DbRunbookTestCase.test_update_duplicate_name [0.047984s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_owner_manager_create_volume_target [0.091410s] ... 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/10c5a9af-7f7f-4865-8fb3-3c84c1e94e78 Openstack-Request-Id: req-3a8803c1-2043-489c-8079-2012a8a1b8de X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "10c5a9af-7f7f-4865-8fb3-3c84c1e94e78", "created_at": "2025-05-30T17:33:01.772201+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/10c5a9af-7f7f-4865-8fb3-3c84c1e94e78", "rel": "self"}, {"href": "http://localhost/volume/targets/10c5a9af-7f7f-4865-8fb3-3c84c1e94e78", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_extra [0.024996s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.067468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.090307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_runbooks.DbRunbookTestCase.test_update_name [0.022401s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_not_found [0.020757s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_add [0.023817s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_lessee_admin_create_volume_target [0.089288s] ... 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/570a791b-76eb-40fc-b5a0-cd7cdb6ea858 Openstack-Request-Id: req-100d4770-88cc-4716-a786-a0106f84cd23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "570a791b-76eb-40fc-b5a0-cd7cdb6ea858", "created_at": "2025-05-30T17:33:01.848210+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/570a791b-76eb-40fc-b5a0-cd7cdb6ea858", "rel": "self"}, {"href": "http://localhost/volume/targets/570a791b-76eb-40fc-b5a0-cd7cdb6ea858", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.075697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_runbooks.DbRunbookTestCase.test_update_steps_remove_all [0.033700s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace [0.025133s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.121691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_runbooks.DbRunbookTestCase.test_update_steps_replace_args [0.031848s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.084530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_create_volume_target [0.085926s] ... 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/973ed655-0c7b-4155-a3c1-869eef940ed4 Openstack-Request-Id: req-280e346c-fb6b-4367-902a-3c30603b58aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "973ed655-0c7b-4155-a3c1-869eef940ed4", "created_at": "2025-05-30T17:33:01.946086+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/973ed655-0c7b-4155-a3c1-869eef940ed4", "rel": "self"}, {"href": "http://localhost/volume/targets/973ed655-0c7b-4155-a3c1-869eef940ed4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_uuid_not_allowed [0.021211s] ... ok {1} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.018961s] ... ok {1} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_list [0.028255s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.041856s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.100412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_add_network_no_port [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.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.050694s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.036377s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_third_party_admin_cannot_create_volume_target [0.208555s] ... 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-57777835-2a1e-4208-a477-052458f675dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.040911s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.141225s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.025142s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.153595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.077348s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.083891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_add_ports_to_network [0.081413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.079134s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.068624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_424_owner_member_can_patch_volume_target [0.190884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/03913c3c-27c5-4dbb-90b6-41187f57aa0e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e041aed3-f4be-45b8-93ca-e8b08f87a371 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.061565s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.117158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.075801s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.037178s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.057769s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.040267s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.060587s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.031897s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports_via_not_pxe [0.120489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_service_can_patch_volume_target [0.187016s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/76982879-d329-47e9-b27f-67738b3f9076 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a68561b3-e286-4af3-9271-6cb2cd1955b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.029501s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.046890s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.026543s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.029249s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.084280s] ... ok 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_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.073317s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.045534s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.061839s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.031938s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.076734s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.046863s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_426_lessee_admin_can_patch_volume_target [0.215346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/659cfa4c-d41c-4c7c-b37e-cc420507d19b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a31f2f7a-ccf5-4cd9-a441-9f7f71f7813b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.075877s] ... ok 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_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.067109s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.064231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.DracBootTestCase.test__set_boot_device_disk [0.086605s] ... ok 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_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.075224s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy [0.048553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_get_local_group_information [0.065771s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.DracBootTestCase.test__set_boot_device_persistent [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( {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.058433s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_lessee_manager_can_patch_volume_target [0.191456s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/120f2e82-9a84-42a5-a33d-6337132a3c37 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-870d51a4-41f0-4cb7-8696-295a74213c2d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor [0.033102s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data [0.062290s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.046621s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.032436s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.047632s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.051395s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.033762s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.031025s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.062658s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.039550s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_member_cannot_patch_volume_target [0.135322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/fffa21fd-920b-445e-8d5c-3e80e7564025 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5758c3ac-6676-4aa7-bb3a-7eee901f0918 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.035995s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.045384s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.066276s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.061109s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.036235s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.032561s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.021519s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.043363s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.041111s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.035154s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.054125s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_patch_volume_target [0.197237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/54f778f9-44d1-443b-a4f3-44fff5a99773 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0ff1079e-eee9-4d76-bf77-4ef868a8e0c0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 54f778f9-44d1-443b-a4f3-44fff5a99773 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.062693s] ... ok 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_fsm.FSMTest.test_process_event [0.056811s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.049968s] ... ok 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_fsm.FSMTest.test_target_state_stable [0.037719s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.042053s] ... ok 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.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.040111s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_service_cannot_patch_volume_target [0.137282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/eb00fa3d-f9fa-44a2-81c9-7e8acc6bc25f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7df6e2e8-0290-4f0e-9111-5a40cd7b0c2f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target eb00fa3d-f9fa-44a2-81c9-7e8acc6bc25f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.032655s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.059145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.235586s] ... ok 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.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.036544s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.036383s] ... ok 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.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.036356s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.071719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.035564s] ... ok 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.TestGlanceSwiftTempURL.test_swift_temp_url [0.061481s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_owner_admin_can_delete_volume_target [0.148064s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/dfda14cf-d2f0-452e-bc08-7846fdeffca1 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b7bc0e84-3ee2-446d-8957-ae1606e4b08e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [0.044165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.073134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.021767s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.027544s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.084028s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.021356s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.067252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.022284s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.021180s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.053741s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.050132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_432_owner_manager_can_delete_volume_target [0.159056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/deb1b769-af6d-429b-90f6-45a11fedf580 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-daf952cf-4360-4386-a763-a0be7ee9e699 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.044101s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.055125s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.050534s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.057766s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.088000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.043615s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.028643s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.055274s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_manager_can_delete_volume_target_service [0.142841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/8249fb41-ad04-4784-900f-2e1e5bf20ea4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0fc1ce8a-235d-4cff-bea2-84536551bca0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.034954s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.059223s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.047098s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.051226s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.035481s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_admin_can_delete_volume_target [0.136760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/6e777d23-af04-4c75-98f0-cc49b9395985 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7077ce4c-0212-4b4f-8f7d-92834c965a73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_multiple_containers [0.048502s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.051108s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.101683s] ... ok 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.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.037343s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_lessee_manager_can_delete_volume_target [0.137843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/7c61df57-3538-4403-846a-0ad2803bbd30 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f390b7b3-d0cc-4a6e-95dd-dcb219fb02ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.086296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.060645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_436_owner_member_cannot_delete_volume_target [0.130622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/069ebf4a-51a1-41e4-8f68-3e93a5d5a8e8 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-10e65790-465e-4aca-9983-3e95f431a8a0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.080503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.084030s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_437_lessee_member_cannot_delete_volume_target [0.160675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/ec01e4a8-6f65-4405-bfb7-e26743aec6fe GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-12b3ef39-0543-4a4e-bef3-560967b7e3f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.638192s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.075095s] ... ok 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.TestSwiftTempUrlCache.test_add_items_to_cache [0.409383s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.059274s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_third_party_admin_cannot_delete_volume_target [0.134289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/4a38e196-4b66-48fa-bb8a-d9638aa36615 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0eee3a33-a8b9-455e-91ba-c27ba155c893 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 4a38e196-4b66-48fa-bb8a-d9638aa36615 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.058778s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.029196s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.159799s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.136014s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.081403s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_service_cannot_delete_volume_target [0.154649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/b7a59b88-cf61-4e63-a6ed-b407b428c828 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-276cfa77-38e8-40bd-b72c-33034ebf7a77 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target b7a59b88-cf61-4e63-a6ed-b407b428c828 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.103922s] ... ok 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.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.061765s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.053261s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.127483s] ... ok {0} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.052365s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_owner_reader_can_get_volume_connectors [0.146554s] ... 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-8a833229-795c-4acf-97cc-5392cf2af1fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.148503s] ... ok 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_image_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.051221s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.136331s] ... ok {0} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_copy [0.063835s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.134997s] ... ok 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_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.078838s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_service_can_get_volume_connectors [0.198796s] ... 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-fc14dd23-df46-4ee5-b6bb-de6d8a8fe5b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {0} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.054229s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.162746s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.107184s] ... ok 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_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.048780s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.047628s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_can_get_node_volume_connectors [0.152183s] ... 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-715b87f9-834e-4969-99b1-35cfb51a6946 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"connectors": [{"uuid": "9df9f1e8-8eb5-403a-bd0f-c5d336d69750", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9df9f1e8-8eb5-403a-bd0f-c5d336d69750", "rel": "self"}, {"href": "http://localhost/volume/connectors/9df9f1e8-8eb5-403a-bd0f-c5d336d69750", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.040293s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.137290s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.058356s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.196775s] ... ok 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_image_service.FileImageServiceTestCase.test_download_symlink [0.059392s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_node_volume_connectors [0.150319s] ... 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-661aef49-bd57-42de-bf87-971496d49394 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.044110s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged [0.137454s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.033503s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_blocked_path [0.036706s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_node_volume_connectors [0.131812s] ... 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-9a27f8a9-382f-4919-985c-b79f107a647b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_empty_allowlist [0.043112s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.199074s] ... ok 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_image_service.FileImageServiceTestCase.test_validate_href_in_allowlist [0.042440s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.185447s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_not_in_allowlist [0.031729s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.039973s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_node_volume_targets [0.154336s] ... 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-558ff8ed-8f45-4b0f-b1b5-a53b90ae36c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific [0.034744s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_bad_format [0.047946s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.130130s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_not_specific [0.050500s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.071114s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference [0.055352s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_owner_service_can_read_get_node_volume_targets [0.190672s] ... 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-f0c80a71-44a9-4ae1-855c-59bb72b2199e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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"}]} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.315122s] ... ok 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.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.056804s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference_just_digest [0.038248s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.051244s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image [0.045825s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.028992s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_aarch64 [0.035421s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.126828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.036573s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_reader_can_get_node_volume_targets [0.135333s] ... 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-a82bfeb7-cd98-4dc1-a9d8-0b7fc432e471 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"targets": [{"uuid": "5a3ef0e0-115d-46e9-ad31-b17e4fb4abcc", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5a3ef0e0-115d-46e9-ad31-b17e4fb4abcc", "rel": "self"}, {"href": "http://localhost/volume/targets/5a3ef0e0-115d-46e9-ad31-b17e4fb4abcc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_bad_manifest [0.039444s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.030032s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_local [0.051085s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.039959s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_specific_digest [0.052236s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.137833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.062869s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_show [0.056288s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_third_part_admin_cannot_read_node_volume_targets [0.177177s] ... 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-6f482600-0e8d-4e63-9685-5e23cf82f782 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.043877s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_validate_href [0.051457s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.036697s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.106271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.030831s] ... ok {0} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_fails_multiple [0.045859s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.057761s] ... ok {0} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes [0.057060s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_service_cannot_read_node_volume_targets [0.156300s] ... 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-80b9e9bc-2392-4cec-a57f-a267f6854a95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.030309s] ... ok {0} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes_iso_gpt [0.054099s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.050210s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.166740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.068048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_drivers [0.145921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e58aba16-0d48-4ae6-a6f1-aa29c055dc2c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.108451s] ... ok 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.common.test_inspection_rule.TestInterpolation.test_variable_interpolation [0.133547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestValidateNetwork.test_by_name [0.029402s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.070175s] ... ok 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.038934s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.021141s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_drivers [0.080290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1ac520a1-26c8-4a63-80ec-bc2d7cfee110 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_json_rpc.TestSession.test_http_basic_deprecated [0.037326s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.032836s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.048842s] ... ok 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_keystone [0.039429s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.052479s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_drivers [0.084876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f9ff3f24-f904-4197-974c-d49785d6758f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.054467s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestSession.test_noauth [0.032594s] ... ok {2} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.021815s] ... ok {0} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_add_auth_opts [0.023927s] ... ok {0} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_os_service_types_alias [0.028107s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.070576s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.039360s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_service_cannot_get_drivers [0.074781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-07fce67c-1df7-4dcc-bf7f-7c4ed2a48244 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.026403s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.031650s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.053970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.027329s] ... ok {0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.062613s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.025974s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.023491s] ... ok {0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.039387s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.084371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_454_owner_reader_cannot_get_drivers_vendor_passthru [0.131105s] ... 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-e978219a-d3f4-45eb-ae42-e558acceaebf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.037356s] ... ok {0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.057970s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.057930s] ... ok 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_keystone.KeystoneTestCase.test_get_session [0.025395s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.067468s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_lessee_reader_cannot_get_drivers_vendor_passthru [0.103937s] ... 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-2c8eacf0-f91b-45a1-ba9b-0c140ed0113d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.060584s] ... ok 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_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.056035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.050813s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.052506s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.073606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_456_third_party_admin_cannot_get_drivers_vendor_passthru [0.090502s] ... 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-fbc3047a-d521-4eba-b54c-c7dc01062d7c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.081250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing [0.060197s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_457_service_cannot_get_drivers_vendor_passthru [0.088516s] ... 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-261f5983-752d-457d-ba0d-226acf87ab77 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_mdns.RegisterServiceTestCase.test_failure [0.084611s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.110078s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.062262s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.060636s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.093117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.054819s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.069578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_reader_can_get_bios_setttings [0.190039s] ... 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-9205da0c-ae53-46c5-98c8-85c7c5af3c8f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": []} {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.061378s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.023942s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.032275s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.118261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.037759s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.034605s] ... ok {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_ok [0.354070s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.030718s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.101826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.022451s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.025041s] ... ok {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_interfaces [0.078272s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.029585s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.024312s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.027592s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.116220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.034285s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.029718s] ... ok {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_params [0.143726s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.034496s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.118186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.041845s] ... ok {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_race [0.095691s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.058285s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.050670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TFTPImageCacheTestCase.test_without_master_path [0.036224s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.023478s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.052566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__get_pxe_ip_address_path [0.032731s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.059441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__get_pxe_mac_path [0.036320s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_459_lessee_reader_can_get_bios_settings [0.664186s] ... 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-4fc52051-b3f8-4631-98f3-0c39f99a3a5d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": []} {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.046518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__get_pxe_mac_path_ipxe [0.053853s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.067563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_460_third_party_admin_cannot_get_bios_settings [0.103221s] ... 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-2c5c580f-a33d-4afa-a3bf-3dddf3149155 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.059506s] ... ok 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_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.059736s] ... ok 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_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.059996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_461_service_can_get_bios_setttings_owner_project [0.182331s] ... 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-2e9aeee3-b067-4433-b3a6-5a38ebaca4e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"bios": []} {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.049311s] ... ok 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_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.048074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.602885s] ... ok 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_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.042044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_462_service_cannot_get_bios_setttings [0.149781s] ... 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-5e8dd433-ad6a-4b3d-8bc7-4be05084c532 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.086824s] ... ok 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_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.064519s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__link_ip_address_pxe_configs [0.454439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.IloInspectTestCase.test_validate [0.087457s] ... ok 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_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.065430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__write_infiniband_mac_pxe_configs [0.067057s] ... ok 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_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.054876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_463_owner_reader_cannot_get_conductors [0.193471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9f3c9b6e-37ad-4995-a999-fba54c7dd759 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.097754s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__write_mac_ipxe_configs [0.104394s] ... ok 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_network.TestNetwork.test_remove_vifs_from_node [0.093084s] ... ok 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_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.048751s] ... ok 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.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.031624s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_reader_cannot_get_conductors [0.113267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1157dd48-4d0f-4596-804f-2cd1a05739ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.028708s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.060135s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [0.123797s] ... ok 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.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.022600s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.025763s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.017664s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.057939s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_cannot_get_conductors [0.078650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-92589418-fa7b-4b0c-b944-a91beb05a1a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.019030s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.023322s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.093831s] ... ok 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.TestUnbindPort.test_unbind_neutron_port_failure [0.026035s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.065825s] ... ok 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.TestUnbindPort.test_unbind_neutron_port_if_bound [0.023403s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound [0.019189s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.080299s] ... ok 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.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound_empty [0.023603s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_466_owner_reader_can_get_allocations [0.126207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f70228b-c6b1-4531-8b94-b091bd7307be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "27c05c45-f131-410c-bf18-aa742b79ce7a", "created_at": "2025-05-30T17:33:08.968005+00:00", "updated_at": "2025-05-30T17:33:08.970283+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/27c05c45-f131-410c-bf18-aa742b79ce7a", "rel": "self"}, {"href": "http://localhost/allocations/27c05c45-f131-410c-bf18-aa742b79ce7a", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_not_found [0.019174s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_osc_error [0.017857s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_tlv_value_hex_format [0.050368s] ... ok 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.TestUnbindPort.test_unbind_neutron_port_not_found [0.025191s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.042189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_clean_up_pxe_config_uefi_mac_address [0.142461s] ... ok 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.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.026671s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.020282s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_467_lessee_reader_can_get_allocations [0.118701s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5873d0ef-40f1-46ba-a301-9c0dc4406b6e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": [{"uuid": "7f55bf07-3285-449d-8e6e-ed22743e61c4", "created_at": "2025-05-30T17:33:09.061071+00:00", "updated_at": "2025-05-30T17:33:09.064687+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/7f55bf07-3285-449d-8e6e-ed22743e61c4", "rel": "self"}, {"href": "http://localhost/allocations/7f55bf07-3285-449d-8e6e-ed22743e61c4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.022501s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [0.054246s] ... ok 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.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.022089s] ... ok {0} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.024465s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_id_subtype_mac [0.061014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_clean_up_pxe_config_uefi_no_ipaddress [0.117073s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_local_link_connection_already_exists [0.043684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.070422s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_valid_data [0.043331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_468_owner_reader_can_get_their_allocation [0.164644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/99558005-0cb7-4880-bd7c-5bb69e845668 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-213575a0-5f9a-4526-aef2-93f769a1debb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "99558005-0cb7-4880-bd7c-5bb69e845668", "created_at": "2025-05-30T17:33:09.210988+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/99558005-0cb7-4880-bd7c-5bb69e845668", "rel": "self"}, {"href": "http://localhost/allocations/99558005-0cb7-4880-bd7c-5bb69e845668", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.055433s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.041214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [0.045897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_copy_file_different [0.059260s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.049576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_469_lessee_reader_can_get_their_allocation [0.146008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/1e48f4f9-9278-4544-a392-73dbfcf4a31f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c558497-f0e1-4e87-a2c6-0faf95219e77 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1e48f4f9-9278-4544-a392-73dbfcf4a31f", "created_at": "2025-05-30T17:33:09.376937+00:00", "updated_at": "2025-05-30T17:33:09.377996+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/1e48f4f9-9278-4544-a392-73dbfcf4a31f", "rel": "self"}, {"href": "http://localhost/allocations/1e48f4f9-9278-4544-a392-73dbfcf4a31f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.061180s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_serials [0.041525s] ... ok 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_oci_registry.OciClientRequestTestCase.test__resolve_tag [0.320447s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.056446s] ... ok 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_oci_registry.OciClientRequestTestCase.test__resolve_tag_auth_needed [0.037142s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_follows_links [0.020607s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.106216s] ... ok 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_oci_registry.OciClientRequestTestCase.test__resolve_tag_if_not_found [0.019625s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_found [0.077908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_470_owner_admin_can_delete_their_allocation [0.174338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/d37122fc-eab2-425f-8c47-307febdf26d2 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2bec2965-045c-49c9-a0da-f42358ac49e1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_temp_failure [0.034920s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bad_header [0.019288s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.042823s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth [0.025231s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth_no_username [0.017158s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.029676s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.122150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_no_pxe_fallback_to_all [0.036219s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bearer_auth [0.039371s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.027425s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_fallback_to_service_config [0.041445s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.028890s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_no_header [0.017505s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_noop [0.016421s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.109184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_471_owner_manager_can_delete_their_allocation [0.182007s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/92182a59-ca77-4bfe-9b5d-6c26fcf2b909 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-feb0e7bf-a0d6-48fc-8564-0dc8e94cd018 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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 [0.022458s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_401 [0.021231s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_403 [0.026689s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_lessee_admin_can_delete_their_allocation [0.088400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/31bf51a0-361d-490b-b185-d43bdc942319 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-67c7a513-659c-4120-bc4e-92034c0a5b54 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_404 [0.024366s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.099335s] ... ok 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_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_500 [0.022766s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_check [0.020434s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_access_denied [0.026486s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_lessee_manager_can_delete_their_allocation [0.087293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/6f67f798-291e-4021-8a79-90a2899743d3 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-76fc811b-c3bb-4a06-a9e6-6b97f6787041 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.086437s] ... ok 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_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_authorized [0.020956s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_found [0.036551s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_temporaryfailure [0.021992s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_474_owner_member_can_delete_their_allocation [0.085663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/11f5e46b-4836-4b7e-91ee-71968223caa9 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2874028d-7182-4d15-b684-6a5a210afc39 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.100954s] ... ok 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_oci_registry.OciClientRequestTestCase.test_get_artifact_index_with_tag [0.055711s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest [0.047083s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_475_lessee_member_can_delete_their_allocation [0.088355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/96e7466f-7dfc-4864-a0be-1b0431bfaf2c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5de23284-010c-4754-9fc6-c070753e1f57 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.091667s] ... ok 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_oci_registry.OciClientRequestTestCase.test_get_manifest_auth_required [0.047939s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_checksum_verifies [0.044256s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.061192s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_476_owner_member_can_patch_allocation [0.107963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/e0714490-61ee-4b4d-bc58-91ba0844bfd9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29620833-685e-41cb-ad4b-f826454f4c7d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "e0714490-61ee-4b4d-bc58-91ba0844bfd9", "created_at": "2025-05-30T17:33:10.200880+00:00", "updated_at": "2025-05-30T17:33:10.248401+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/e0714490-61ee-4b4d-bc58-91ba0844bfd9", "rel": "self"}, {"href": "http://localhost/allocations/e0714490-61ee-4b4d-bc58-91ba0844bfd9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_access_denied [0.037284s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_not_found [0.019261s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_temporary_failure [0.023471s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.104325s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_lessee_member_can_patch_allocation [0.110819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/bd6a2cac-ba7c-4709-8b51-58f09d3283d0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e05118ee-f582-448e-bf4e-5bcdbb5876f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "bd6a2cac-ba7c-4709-8b51-58f09d3283d0", "created_at": "2025-05-30T17:33:10.312195+00:00", "updated_at": "2025-05-30T17:33:10.354188+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/bd6a2cac-ba7c-4709-8b51-58f09d3283d0", "rel": "self"}, {"href": "http://localhost/allocations/bd6a2cac-ba7c-4709-8b51-58f09d3283d0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.062374s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.041221s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_478_third_party_admin_can_get_allocations [0.073611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7266eb43-d0ea-492a-a0e5-85042c3a56b5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"allocations": []} {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.043568s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.158028s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.044084s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.045697s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_479_third_party_admin_can_create_allocation [0.120324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-821e6ba9-f105-4439-be61-c3b80771faa6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.030440s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client [0.842205s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.034639s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.134472s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.035955s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.034770s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_480_third_party_admin_cannot_create_allocation_with_owner_node [0.171832s] ... 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-6026fae5-b7ae-4204-953f-d61146be1e34 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.083752s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.047233s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.039509s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.024500s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.026280s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.030792s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.133521s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.032015s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.041944s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.047682s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.146921s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_481_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.300787s] ... 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-85c8db02-fd15-4259-a6de-76fad5c3c7ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.070724s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.094010s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.089574s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.059827s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.099722s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.020938s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.016447s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_admin_can_create_allocation_with_their_uuid [0.214475s] ... 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-883ff5e8-8715-4727-93e7-0d02960b2c3f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.044778s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.036411s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.033052s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.025245s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.020999s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.056902s] ... ok 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_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.063337s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.055430s] ... ok 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_rpc.TestUtils.test_init_globals_notifications_disabled [0.048302s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_483_owner_manager_can_create_allocation_with_their_uuid [0.210828s] ... 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-efc3878f-fadd-4325-a7f0-15adecea1ea7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.086360s] ... ok 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_rpc.TestUtils.test_init_globals_notifications_enabled [0.065090s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.054497s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.061849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_484_third_party_admin_cannot_read_an_allocation [0.153899s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/dbb93542-f5a2-4665-984d-a2a2594340e9 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fc2cdd8d-7cea-4097-bd7e-b1b2d875c2ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation dbb93542-f5a2-4665-984d-a2a2594340e9 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.068032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ipxe_ipv6 [0.061661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_patch_an_allocation [0.097309s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/487431bc-5753-4426-a594-517945969a51 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cef21ff8-3d8b-4a98-ab51-51b33aa11406 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 487431bc-5753-4426-a594-517945969a51 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.072846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ipv6_bios [0.038619s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_486_third_party_admin_cannot_delete_an_allocation [0.094630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/3e53a948-f8a7-4f3c-8c07-de019f3d8ca3 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dbb2265b-6862-4db5-998b-a9825198036e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3e53a948-f8a7-4f3c-8c07-de019f3d8ca3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.028099s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_connection_problem [1.227490s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.025271s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.022952s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.030980s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_487_owner_reader_can_read_node_allocation [0.095610s] ... 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-4847c5ac-8e67-481e-8ed1-d0f3ec01ce26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "0eb6b3d2-340a-48fc-9b32-fd0ffa338086", "created_at": "2025-05-30T17:33:11.887501+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/0eb6b3d2-340a-48fc-9b32-fd0ffa338086", "rel": "self"}, {"href": "http://localhost/allocations/0eb6b3d2-340a-48fc-9b32-fd0ffa338086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.025736s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.029938s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.045503s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_488_lessee_reader_can_read_node_allocation [0.109435s] ... 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-02c3ab53-f241-46c8-b6c7-a034ce118feb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "94fef448-97e2-4e5b-89c6-ff10745253fc", "created_at": "2025-05-30T17:33:11.990339+00:00", "updated_at": "2025-05-30T17:33:11.997287+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/94fef448-97e2-4e5b-89c6-ff10745253fc", "rel": "self"}, {"href": "http://localhost/allocations/94fef448-97e2-4e5b-89c6-ff10745253fc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_link_mac_pxe_configs_with_pxe_disabled [0.055461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_489_third_party_admin_cannot_read_node_allocation [0.075047s] ... 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-ded39a3d-c6e8-47f1-b35a-ad77ea97a6d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config [0.035065s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.032819s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_490_owner_admin_can_delete_allocation [0.063096s] ... 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-6717ed53-d926-4204-bc90-9fa1e078d002 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_pxe_config [0.029780s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.031729s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.039009s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_491_owner_manager_can_delete_allocation [0.098677s] ... 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-e2c43dec-5ae2-465b-9c8b-9c536964d7db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.028675s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.040019s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_492_lessee_admin_can_delete_allocation [0.094893s] ... 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-e2e92331-9911-41b6-9504-3e2c052fcd3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.045135s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.033227s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.055958s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_493_lessee_manager_not_delete_allocation [0.116342s] ... 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-a58bd1a9-7d6f-48a1-a6c9-0aa33b99c312 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.042229s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.979797s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_494_third_party_admin_cannot_delete_allocation [0.079481s] ... 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-5383d822-6618-4753-b3e6-958ba78f5deb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_servicing [0.053943s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_495_owner_reader_cannot_get_deploy_templates [0.100251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1ec00d74-c3ba-4663-bc4e-1d1f94d5880d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_lessee_reader_cannot_get_deploy_templates [0.076390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8e2cb9d9-1ea6-4807-ac3c-eadafed7f25c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_497_third_party_admin_cannot_get_deploy_templates [0.094948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e829abc6-54cb-480f-b13c-d34e4e9ce393 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.303037s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.036328s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.023769s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_498_third_party_admin_cannot_post_deploy_template [0.102272s] ... 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-1cd56e11-aa4b-486e-bb56-37c9ecbd6143 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.023568s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.019091s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.018903s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_499_service_cannot_get_deploy_templates [0.072975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cc362932-8b0e-436e-acb1-1bbbafe85a65 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.023019s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.040983s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.039281s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.033672s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.069622s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_standalone [1.475117s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.096374s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.068715s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.067218s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.030760s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.030802s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.040419s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.030059s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.073197s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_properties [0.055204s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.030155s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.092073s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_boot_clean_up_failed [0.062388s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [1.103483s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_500_service_cannot_post_deploy_template [0.647192s] ... 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-7f9d1ba9-5662-4c3a-9f1a-c3011f418484 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.058296s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed [0.070961s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.022186s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.018802s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_disable_power_off [0.058916s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.035634s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_501_owner_reader_cannot_access_chassis [0.118736s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b121b0fe-ec0e-44ea-9183-b7f320a4f130 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off [0.039135s] ... ok {2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.035572s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.020257s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off_on_fast_track [0.038063s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.018548s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_502_lessee_reader_cannot_access_chassis [0.085230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ea69d49d-72a9-46f0-9ae9-420f0a63eb9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_network_clean_up_failed [0.048118s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.033257s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged [0.035238s] ... ok {2} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.034618s] ... ok {2} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.017058s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_503_third_party_admin_cannot_access_chassis [0.073173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-34daebe8-58dd-4be9-b8a4-e61d9bbe7d0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged_force_power_off [0.045128s] ... ok {2} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.025498s] ... ok {2} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.020052s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_504_third_party_admin_cannot_create_chassis [0.064275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-373b02fb-a959-4abe-834d-3cecd91bdc07 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.036814s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.018071s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.102703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GenericUtilsTestCase.test_file_has_content_differ [0.026010s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_505_service_cannot_access_chassis [0.077159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-425df4b2-d48e-419e-a575-fc35022e128a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.029211s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.025732s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.071252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GenericUtilsTestCase.test_is_fips_enabled [0.031604s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.022938s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.018263s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_506_service_cannot_create_chassis [0.113615s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-230ae898-23fd-4553-9ddd-7a8ee13a7fb7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.015679s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.094394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.035565s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.019320s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.017148s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_node_history_get_admin [0.090510s] ... 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-0b55f711-44ea-422d-9a68-d8a518a6eb3e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "00b2501d-e833-4b7a-b62a-a25bed8edc7e", "created_at": "2025-05-30T17:33:14.269599+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/00b2501d-e833-4b7a-b62a-a25bed8edc7e", "rel": "self"}]}]} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.084067s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.031735s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.029632s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.045463s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.111760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.039968s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.048459s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_node_history_get_member [0.192446s] ... 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-f68a1acc-6864-4de8-b584-0c4172069553 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "ce48087c-2c91-4e5a-93e9-ef5135736612", "created_at": "2025-05-30T17:33:14.423819+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/ce48087c-2c91-4e5a-93e9-ef5135736612", "rel": "self"}]}]} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.091141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GetRouteSourceTestCase.test_get_route_source_indexerror [0.052550s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_node_history_get_reader [0.069832s] ... 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-737b0cb3-821e-40b5-9433-1d7b58ad95d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "30d4d579-3aef-44bb-8b79-9901411d3d17", "created_at": "2025-05-30T17:33:14.545635+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/30d4d579-3aef-44bb-8b79-9901411d3d17", "rel": "self"}]}]} {2} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 [0.059227s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [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( {2} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 [0.044556s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_service [0.090810s] ... 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-c8ed7f5f-8bee-495f-afea-1fc07c4d63bb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"history": [{"uuid": "edbd977b-b15b-4fda-9073-8950acfbd374", "created_at": "2025-05-30T17:33:14.626431+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/edbd977b-b15b-4fda-9073-8950acfbd374", "rel": "self"}]}]} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.056530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal [0.038193s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.052361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed [0.034268s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_history_get_service_cannot_be_retrieved [0.076391s] ... 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-20498eaa-e9b4-4550-9b02-47d699cef231 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints [0.032227s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value [0.039838s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_512_node_history_get_entry_admin [0.087436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/1c6d7d3e-e61b-41bb-b6f1-700bf5008ea6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ca5a289-8b29-4e12-8273-50b4387e78f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "1c6d7d3e-e61b-41bb-b6f1-700bf5008ea6", "created_at": "2025-05-30T17:33:14.798458+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/1c6d7d3e-e61b-41bb-b6f1-700bf5008ea6", "rel": "self"}]} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.099765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer [0.052591s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values [0.044377s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.068649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_513_node_history_get_entry_member [0.097141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/d206767d-8e5f-4c99-882d-6c283de9c871 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a24b42b2-6806-46fa-9d5f-6584431d26d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "d206767d-8e5f-4c99-882d-6c283de9c871", "created_at": "2025-05-30T17:33:14.888963+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/d206767d-8e5f-4c99-882d-6c283de9c871", "rel": "self"}]} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space [0.037007s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator [0.038950s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_514_node_history_get_entry_reader [0.079772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/7d5ecf7b-d1b7-4232-9ee1-ffa8c845bdef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42f7ecb1-1c1c-42a7-8f42-9bd320bc9717 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7d5ecf7b-d1b7-4232-9ee1-ffa8c845bdef", "created_at": "2025-05-30T17:33:14.974341+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/7d5ecf7b-d1b7-4232-9ee1-ffa8c845bdef", "rel": "self"}]} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value [0.038614s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.145349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value [0.043320s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_515_lessee_node_history_get_admin [0.063299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/e15ab69a-4479-4177-a9c9-f04e02c7d52b/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-abe6f5cf-9289-406e-86a8-fe218107bd04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e15ab69a-4479-4177-a9c9-f04e02c7d52b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in [0.027364s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space [0.060080s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_516_lessee_node_history_get_member [0.084742s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/146dbd42-e30f-473e-983d-82de172fba28/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f9d56ca8-75ea-4f08-910d-2e046fa559aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 146dbd42-e30f-473e-983d-82de172fba28 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.104377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space [0.033814s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [1.547336s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space [0.033900s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.077855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space [0.036083s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or [0.018081s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_517_lessee_node_history_get_reader [0.119734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ce8583c-0c33-4133-a06f-bb78a50fb88a/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-446fe900-4b16-46dc-a801-4d9e2a99aea0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ce8583c-0c33-4133-a06f-bb78a50fb88a could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational [0.017690s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size [0.015557s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.062619s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or [0.020718s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid [0.016541s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path [0.025351s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_518_lessee_node_history_get_entry_admin [0.122870s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/dd69527b-411b-4da0-97bb-8ea43664cd13/history/e6bb075e-2fbf-4446-9844-2df2803e3619 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6a413a82-69b4-4347-88db-03cdfd7dcf4c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node dd69527b-411b-4da0-97bb-8ea43664cd13 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl [0.035530s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model [0.022631s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name [0.033931s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.156789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational [0.016212s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial [0.015999s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size [0.033765s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor [0.038307s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_519_lessee_history_get_entry_member [0.194564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/e5cc9189-4cd3-4426-8471-44edc85fe6a7/history/f758e521-8a21-4d87-ab9c-b0bdd1963ad8 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-856a8cc0-4eb7-4911-9d9b-0aef36abd1d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e5cc9189-4cd3-4426-8471-44edc85fe6a7 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn [0.033808s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension [0.026930s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension [0.045711s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints [0.025836s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.251571s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_520_lessee_node_history_get_entry_reader [0.233900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/2ab8b9af-bf51-487b-8b0a-33d3ceeb356d/history/72f2588a-142e-43c1-aef3-6740c7269b5b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f4949360-678c-4eaa-ae57-475a14332ab3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 2ab8b9af-bf51-487b-8b0a-33d3ceeb356d could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.146215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_521_owner_service_node_history_get_entry_reader [0.129910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/547ab23b-2d59-43a7-8bba-912495b4b077 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11ff1cc7-03e6-4b40-9f9a-d785b669f067 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "547ab23b-2d59-43a7-8bba-912495b4b077", "created_at": "2025-05-30T17:33:15.902053+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/547ab23b-2d59-43a7-8bba-912495b4b077", "rel": "self"}]} {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint [0.325583s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.141519s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name [0.019977s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space [0.027498s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators [0.017509s] ... ok {2} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators [0.021312s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_522_third_party_admin_cannot_get_node_history [0.141586s] ... 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-1fe2f571-219d-45f2-9ab7-ce709b39cdc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.020706s] ... ok {2} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.027815s] ... ok {2} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.033356s] ... 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.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.031995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.201031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_523_node_history_get_entry_third_party_admin [0.129957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/e64708a5-4509-44db-ad02-e9bb9e7029e4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ef77aec6-23c5-41c0-b309-2555e08912a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.046689s] ... 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.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.038904s] ... 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_524_node_history_get_entry_service [0.075731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/56c45e55-efc6-4867-adce-a55d6561ce1d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-573f3cf0-b2a4-4554-91e1-79e3029fe572 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.039665s] ... 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_node_inventory_get_admin [0.073046s] ... 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-9a3fa810-8960-4178-9be4-fc298534384c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {2} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.049311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.231337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.093281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_526_node_inventory_get_member [0.108035s] ... 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-c35a08f1-ed12-4c03-9858-78e020a1144b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.082222s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.079237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_527_node_inventory_get_reader [0.076842s] ... 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-47428bb4-73a8-4f05-baba-0fd2624edc2c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.061504s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_528_lessee_node_inventory_get_admin [0.074855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/c1ad8c1d-23bc-4093-9c3b-078ec774c905/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7e67832c-5ae4-48e8-9924-f3c9ef2c7747 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node c1ad8c1d-23bc-4093-9c3b-078ec774c905 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.104971s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.084288s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_529_lessee_node_inventory_get_member [0.083065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/dd631db9-bb7f-40f8-bd35-7fa92f693b11/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aa565df3-e693-4aa6-be6c-bb07ff238bd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node dd631db9-bb7f-40f8-bd35-7fa92f693b11 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.074621s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_lessee_node_inventory_get_reader [0.107369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/95728bd7-6078-470c-a90f-a7dfd68cb288/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8be66c40-a4aa-4ec4-b659-b950ae545a61 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 95728bd7-6078-470c-a90f-a7dfd68cb288 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.175869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.081461s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.050289s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_531_shard_get_shards_disallowed [0.116380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4f91593d-bb0d-4cd4-a080-1c83df2fcb61 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:shards:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.056108s] ... ok {2} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.131312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.053144s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_object_fails [1.850413s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.045326s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.044999s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.144337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_532_shard_patch_set_node_shard_disallowed [0.201591s] ... 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-61085898-7236-4a49-bb71-f65c5e8086b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.049770s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.053436s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.127682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_533_parent_node_patch_by_admin [0.112217s] ... 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-139545a5-79f4-40b8-a273-1034c2d005e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.046265s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.046944s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_534_parent_node_patch_by_member [0.087294s] ... 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-31b8e4dc-ebab-4183-9272-b9ac7e0234d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.056061s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.161504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.049409s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_535_parent_node_patch_by_reader [0.086600s] ... 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-99f8e9a8-899d-48fb-b478-e2f1a322d8d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.051728s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.045361s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_536_parent_node_patch_by_manager [0.097516s] ... 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-df2a2164-0bf9-4ddb-bafc-735c097efe9a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic [0.181133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.056055s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_537_parent_node_patch_by_cannot_see_node [0.074952s] ... 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-9ce37fb3-1af4-433d-ab4d-a097da4c429f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unable to apply the requested parent_node. Requested value was invalid.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.046837s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.131333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.068813s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.071079s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.114806s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.065024s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.072051s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.144738s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.059445s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_538_parent_node_children_can_get_list_of_children [0.375424s] ... 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-d5409fac-92d2-4cb6-9577-777816c9d877 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"children": ["3c3b8adb-edd7-3ed0-8e82-aab714d8411a"], "links": {"href": "http://localhost/v1/nodes?parent_node=1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "children"}} {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data [1.030397s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [0.083854s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_539_lessee_cannot_get_a_nodes_children [0.093609s] ... 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-8627cad2-82ec-4696-967e-218e65ae38f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.171919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.085963s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_540_owner_reader_can_get_firmware_components [0.091939s] ... 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-4b0a7ca2-efb7-4d12-9b48-8258a4c2e866 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"firmware": []} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_541_lessee_reader_can_get_firmware_components [0.085416s] ... 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-b7c57481-cea3-4655-a313-f73dca026fe0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"firmware": []} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.137837s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.182743s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_542_third_party_admin_cannot_get_firmware_components [0.087463s] ... 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-39199e34-debf-4ea0-bae9-2f1b0f9d3fe6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.082499s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.076346s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_543_service_can_get_firmware_components_owner_project [0.094443s] ... 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-40b43f29-66d6-4511-95ef-f5c904f24168 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"firmware": []} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.063747s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.211249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.036187s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.042508s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_544_service_cannot_get_firmware_components [0.149181s] ... 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-399a8421-1079-426e-ab1d-8ea53bc548b2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.028244s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.129709s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_545_runbooks_post_admin [0.196171s] ... 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/b8940ca6-b43b-42ae-a054-c1a4efd9ebd2 Openstack-Request-Id: req-96388cf9-e944-44e3-808b-ea7b339cb5cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b8940ca6-b43b-42ae-a054-c1a4efd9ebd2", "created_at": "2025-05-30T17:33:18.829667+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/b8940ca6-b43b-42ae-a054-c1a4efd9ebd2", "rel": "self"}, {"href": "http://localhost/runbooks/b8940ca6-b43b-42ae-a054-c1a4efd9ebd2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.120093s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.066749s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_546_runbooks_post_manager [0.148253s] ... 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/f274a77e-2c59-4f92-b75b-1577cafd349b Openstack-Request-Id: req-d0073521-2ecd-47df-900b-15d7553706b5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "f274a77e-2c59-4f92-b75b-1577cafd349b", "created_at": "2025-05-30T17:33:18.985112+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/f274a77e-2c59-4f92-b75b-1577cafd349b", "rel": "self"}, {"href": "http://localhost/runbooks/f274a77e-2c59-4f92-b75b-1577cafd349b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.086183s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_547_service_post_runbook [0.090681s] ... 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/af677ddf-77d6-49dc-b2e2-1218d9618d6e Openstack-Request-Id: req-a553ff05-3bc3-4556-ba53-eecadebebc34 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "af677ddf-77d6-49dc-b2e2-1218d9618d6e", "created_at": "2025-05-30T17:33:19.076104+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/af677ddf-77d6-49dc-b2e2-1218d9618d6e", "rel": "self"}, {"href": "http://localhost/runbooks/af677ddf-77d6-49dc-b2e2-1218d9618d6e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.087631s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_548_third_party_admin_post_runbook [0.085727s] ... 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/ff1dc89e-b09f-4262-a8ce-1abc21d56d78 Openstack-Request-Id: req-6e6bd6a4-6444-4a5e-9fd8-77e936702af7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ff1dc89e-b09f-4262-a8ce-1abc21d56d78", "created_at": "2025-05-30T17:33:19.162542+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/ff1dc89e-b09f-4262-a8ce-1abc21d56d78", "rel": "self"}, {"href": "http://localhost/runbooks/ff1dc89e-b09f-4262-a8ce-1abc21d56d78", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [1.087683s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_549_runbooks_post_public_admin [0.088566s] ... 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-beafc817-efdf-4b7e-b45a-1a6f7ab23378 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy [0.699616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.063601s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_550_runbooks_post_public_manager [0.099055s] ... 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-d9cd3cf2-1215-48db-848f-9811b2736b7e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step [0.071764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_551_runbooks_post_public_service [0.083898s] ... 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-8d8303f0-909a-4882-bb92-04f75bf88f6d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.085279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_552_runbooks_patch_admin [0.098255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/2393d1a9-067c-4216-a7b4-92c00b9d0a2b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f3ce42c-fa9f-4b5c-84d2-8ae57301aea4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "2393d1a9-067c-4216-a7b4-92c00b9d0a2b", "created_at": "2025-05-30T17:33:19.474656+00:00", "updated_at": "2025-05-30T17:33:19.527361+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2393d1a9-067c-4216-a7b4-92c00b9d0a2b", "rel": "self"}, {"href": "http://localhost/runbooks/2393d1a9-067c-4216-a7b4-92c00b9d0a2b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy [0.111498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_553_runbooks_patch_manager [0.104678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7f404597-f06b-4534-acc7-11b6879e4d70 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cfcb11d6-4903-43ca-83ec-3db354b06c23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7f404597-f06b-4534-acc7-11b6879e4d70", "created_at": "2025-05-30T17:33:19.582167+00:00", "updated_at": "2025-05-30T17:33:19.641099+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7f404597-f06b-4534-acc7-11b6879e4d70", "rel": "self"}, {"href": "http://localhost/runbooks/7f404597-f06b-4534-acc7-11b6879e4d70", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.221668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_554_service_patch_runbook [0.184315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6489ae13-ea15-4cc5-82e3-fc96097fa0a6 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfca5587-81c2-46d1-a13a-2666ae3ed403 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "6489ae13-ea15-4cc5-82e3-fc96097fa0a6", "created_at": "2025-05-30T17:33:19.690923+00:00", "updated_at": "2025-05-30T17:33:19.823927+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6489ae13-ea15-4cc5-82e3-fc96097fa0a6", "rel": "self"}, {"href": "http://localhost/runbooks/6489ae13-ea15-4cc5-82e3-fc96097fa0a6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [0.761541s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_555_project_admin_delete_runbook [0.126262s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/c6b46992-f7be-4000-83a7-63b9a4f191b5 GOT Response: 204 No Content Openstack-Request-Id: req-84f328b4-c123-4388-a51b-bf744aef5ab4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.167695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_556_project_manager_delete_runbook [0.081534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/e86f1e5c-769c-47a2-b198-fa7acfb217d4 GOT Response: 204 No Content Openstack-Request-Id: req-2ffe5681-59c7-4857-bdf6-a0db72352c9a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.106178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_557_service_get_runbooks [0.083236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-110b4d14-df30-4531-bb12-47c7581111f9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "e0e9f051-1277-4e43-ac06-2a5ab732c821", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/e0e9f051-1277-4e43-ac06-2a5ab732c821", "rel": "self"}, {"href": "http://localhost/runbooks/e0e9f051-1277-4e43-ac06-2a5ab732c821", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_558_runbooks_project_admin [0.077355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b7aa232-8ce1-4b27-a07d-9c74289968ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "6ae8023b-1404-4c0d-b10a-39c506b950e2", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/6ae8023b-1404-4c0d-b10a-39c506b950e2", "rel": "self"}, {"href": "http://localhost/runbooks/6ae8023b-1404-4c0d-b10a-39c506b950e2", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.155031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_559_runbooks_runbook_id_get_project_admin [0.071258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/8ff32dfb-515c-4172-9570-d07f691f43b0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-afc750ec-094b-4afc-b21a-04ac3a45d676 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "8ff32dfb-515c-4172-9570-d07f691f43b0", "created_at": "2025-05-30T17:33:20.266606+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/8ff32dfb-515c-4172-9570-d07f691f43b0", "rel": "self"}, {"href": "http://localhost/runbooks/8ff32dfb-515c-4172-9570-d07f691f43b0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [1.176760s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.057809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.061933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.IRMCInspectTestCase.test_get_properties [0.089403s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_560_project_admin_patch_runbook [0.119751s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ff88fe34-167a-4b19-b11d-753e3a0e6aba WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0061ca1-43cc-43f9-8250-30960786b8c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "ff88fe34-167a-4b19-b11d-753e3a0e6aba", "created_at": "2025-05-30T17:33:20.354600+00:00", "updated_at": "2025-05-30T17:33:20.425056+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ff88fe34-167a-4b19-b11d-753e3a0e6aba", "rel": "self"}, {"href": "http://localhost/runbooks/ff88fe34-167a-4b19-b11d-753e3a0e6aba", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_561_runbooks_project_manager [0.071208s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-338456b5-3b27-4a1f-8ea0-1c0ac224df34 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "759d88b6-5c82-41ca-87d3-c7b052b7e335", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/759d88b6-5c82-41ca-87d3-c7b052b7e335", "rel": "self"}, {"href": "http://localhost/runbooks/759d88b6-5c82-41ca-87d3-c7b052b7e335", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.173278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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( {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_562_runbooks_runbook_id_get_project_manager [0.065063s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/846dfc97-e3f8-4d1e-8ac9-f5183785c8fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-969a40c9-258a-46fe-855d-530bfa58a98d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "846dfc97-e3f8-4d1e-8ac9-f5183785c8fc", "created_at": "2025-05-30T17:33:20.527516+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/846dfc97-e3f8-4d1e-8ac9-f5183785c8fc", "rel": "self"}, {"href": "http://localhost/runbooks/846dfc97-e3f8-4d1e-8ac9-f5183785c8fc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_563_project_manager_patch_runbook [0.083188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b5e86de9-86cd-45c6-bc15-45fe33e4772b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c5fb291-d1d4-45d8-b639-439e5b37873e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "b5e86de9-86cd-45c6-bc15-45fe33e4772b", "created_at": "2025-05-30T17:33:20.604152+00:00", "updated_at": "2025-05-30T17:33:20.647063+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b5e86de9-86cd-45c6-bc15-45fe33e4772b", "rel": "self"}, {"href": "http://localhost/runbooks/b5e86de9-86cd-45c6-bc15-45fe33e4772b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.252156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_564_runbooks_project_member [0.065472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-32c4c33d-7a07-4396-81a0-0da5e851047d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "ea4b04f5-7504-4a6a-bc4e-6dd1536dfc6e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ea4b04f5-7504-4a6a-bc4e-6dd1536dfc6e", "rel": "self"}, {"href": "http://localhost/runbooks/ea4b04f5-7504-4a6a-bc4e-6dd1536dfc6e", "rel": "bookmark"}]}]} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.099689s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.227079s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_565_runbooks_runbook_id_get_project_member [0.088409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/112b943a-dc62-4426-b6f8-90b2cba3e0fd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-afbbf8d5-4e5e-4ad9-a6ed-835aa0cdfaad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "112b943a-dc62-4426-b6f8-90b2cba3e0fd", "created_at": "2025-05-30T17:33:20.757379+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/112b943a-dc62-4426-b6f8-90b2cba3e0fd", "rel": "self"}, {"href": "http://localhost/runbooks/112b943a-dc62-4426-b6f8-90b2cba3e0fd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_566_runbooks_list_project_reader [0.079702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fe8f25f-fddb-4fc8-9d3a-97285c5a782e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": [{"uuid": "66cd010b-6ad9-4cdf-8629-77ddf8471498", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/66cd010b-6ad9-4cdf-8629-77ddf8471498", "rel": "self"}, {"href": "http://localhost/runbooks/66cd010b-6ad9-4cdf-8629-77ddf8471498", "rel": "bookmark"}]}]} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.159456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_567_runbooks_runbook_id_get_project_reader [0.116567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/7fdd558e-2480-420e-9854-9adbafeee920 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a281a70-73b6-4fea-ba18-4155b44c65e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"uuid": "7fdd558e-2480-420e-9854-9adbafeee920", "created_at": "2025-05-30T17:33:20.932082+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/7fdd558e-2480-420e-9854-9adbafeee920", "rel": "self"}, {"href": "http://localhost/runbooks/7fdd558e-2480-420e-9854-9adbafeee920", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.279036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.223871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACProjectScoped.test_project_scoped_568_runbooks_list_third_party_admin [0.157363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0edefdce-cd19-4ec5-9fd2-7fd18b5c979b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"runbooks": []} {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [1.359662s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.164000s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_569_project_reader_cannot_post_runbook [0.182559s] ... 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-3cf561ec-0f55-4122-a5d1-2acb8492a1ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.334898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.157330s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_570_project_reader_cannot_patch_runbook [0.168096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e987bde6-1348-4344-ae46-cdd9610135a9 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cc42a61c-0701-4903-9b88-f6198e5c0afe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.121228s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.183484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_configdrive_unexpected_error [0.137105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.132485s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_571_project_reader_cannot_set_runbook_owner [0.204413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a99e629e-6b00-4bcd-b8d0-f1fa5fe0e9b0 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5dfdb139-c11e-4565-904e-8f519a89b52b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.127056s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_572_project_reader_cannot_set_runbook_public [0.241429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/de31dcd1-7a3e-4aae-92e6-6312462d0a21 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-14a4cec3-76a0-4b18-b000-c1f9076d9662 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.153613s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_573_project_reader_cannot_delete_runbook [0.092771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/6478bbb9-1312-4902-b7f3-3ac08a9d138d GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5b5e2f7d-6716-4f39-83be-bcb0927386ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.381475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_574_project_member_cannot_post_runbook [0.103237s] ... 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-c39abe0d-1189-474c-9227-df266481a36d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_575_project_member_cannot_patch_runbook [0.070958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/249c1db2-7a59-450f-a598-95d6f8a0ec83 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6f5c5506-8d45-430d-9585-99f8d3365418 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.305888s] ... ok 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_swift.SwiftTestCase.test_delete_object_exc [1.042373s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_576_project_member_cannot_set_runbook_owner [0.096927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f218f9e1-80a1-4025-94f7-ccb1e7ddc157 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e235ee77-3003-4d04-b5f9-666528cdde95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.090505s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.303196s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_577_project_member_cannot_set_runbook_public [0.115797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5a210f4b-321a-47e1-a05a-e182a5d55b0a WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ab04fa4-5c5d-458c-bfc7-d2ca6a324e03 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.093590s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_578_project_member_cannot_delete_runbook [0.101582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/48624373-50da-43dc-ad77-7265aaf9819c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b113372-bbc4-4941-8ee3-772dee589170 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.183045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.094843s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.037618s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_579_project_manager_cannot_set_runbook_owner [0.092443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f34665ae-bb13-4d5a-b291-1958c5f1b12e WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dd05954e-362b-44c2-907e-a57c6e696172 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.087604s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_580_project_manager_cannot_set_runbook_public [0.088899s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b2554ee4-bf16-4a6c-ab8e-77c548a881ff WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-799e1f85-2aa6-426d-9c83-8bbf2fc9ebfb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.075175s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.069408s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.117240s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.124277s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.607900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_empty_media_type [0.115511s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_581_project_admin_cannot_set_runbook_owner [0.483796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f734ee24-f9a2-4e4f-9d75-2a9e6eb58adb WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8959c890-44d5-47db-af07-ee85d2819489 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.113906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_582_project_admin_cannot_set_runbook_public [0.096092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/28313b51-ed7f-4f76-925d-686499ca8f89 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-41e36eb6-1271-4ef9-a03e-5f6701bc36ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting [0.113946s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_583_service_cannot_patch_runbook_owner [0.072601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6019cbe5-945e-4f6c-bf38-548142ea810b WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-434537fc-d8f2-45ca-8f08-c93712670805 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.089234s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.158645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_584_service_cannot_patch_runbook_public [0.085370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9f90e726-ecc9-48df-b112-2b7fe141fb0a WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9264833-8f5d-4579-9f53-31fc133c8592 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_585_third_party_admin_cannot_patch_runbook_owner [0.141659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5b9b2b43-47d9-40b0-98a6-4eff8a446388 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-440f4f59-c614-498f-8a33-c4132f942753 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.238275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_586_third_party_admin_cannot_patch_runbook_public [0.102337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/8d2ac260-9365-48bf-a94f-af90a620491c WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-54acc820-dade-4b9c-bbf9-190e84f0fdf7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.203665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.129627s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-60360ff1-aa5c-4fcd-bcd5-5efcb5bef3b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.133109s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-33b74db1-9190-4dd9-a5c5-a9515c990411 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.239299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [0.124209s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7a309e37-aada-4dfb-b963-b8f9426f4e15 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.162489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.141498s] ... 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-9cd15b71-61c2-4e68-9987-66fd9dde4755 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_bios_boot_mode_fails [0.083489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.086151s] ... 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-98eccbea-7cbf-407f-a2be-3d00cbc83be3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_uefi_boot_mode_fails [0.051868s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.100359s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [1.136787s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.119808s] ... 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-a39b084b-9d9b-4ebd-b68c-9f0720f90b70 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [2.293716s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.070412s] ... 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-80490c81-e8f3-4fae-a7e6-5a03517bd903 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false_even_if_src_set [0.097902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.116464s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_instance [0.092409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.104296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-de50eefb-a943-4448-a0b9-399037a6aada X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.076363s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.077090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c6b20ab-0875-4004-b994-92f555bb6c19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": []} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.099232s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_none [0.142393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.096464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c3924cd0-23a8-430c-bdde-8dc15f954164 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.072722s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_request [0.134214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.102589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9e0a5738-4aa4-47cf-a8c7-982dc6c6d657 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything [0.183413s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.148507s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5ef73d94-5dbc-4bca-9fdc-132f1cf00f31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.187361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.146037s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.065588s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.170676s] ... 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-1344ff1a-5ede-4b5b-8f38-cc65ae00caf6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.054880s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.201680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.067301s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.116150s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.156197s] ... 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-825831f4-b178-4af9-93f9-7437d9cf5dc5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.036307s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.051649s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.116716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.032455s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.144024s] ... 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-c077e4d0-e437-4073-aae3-825a856e8f52 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.042346s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok [0.112515s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.054022s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.037522s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.035629s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.191407s] ... 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-52a0ff48-1080-4b02-8f4c-2b62f682791a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok_asynchronous [0.142440s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.058451s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.055544s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.039935s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [1.355343s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.039090s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.065656s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.044054s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.054273s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.250615s] ... 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-72d63b33-910d-42af-b543-d7714a35feec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.033993s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.044849s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.027632s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.300047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.057132s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.031038s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.021376s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.039138s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.017818s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.018430s] ... ok {0} ironic.tests.unit.common.test_utils.IsHttpUrlTestCase.test_is_http_url [0.018761s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.050195s] ... ok {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink [0.030702s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.193549s] ... 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-8569acf7-360e-4d74-aeed-56bdda713915 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink_ENOENT [0.029366s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.059102s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.213044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.087248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1865dce3-5b6b-4a1a-a32d-ad2eb3f6a7b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.072073s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.070437s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bab9f3f7-842c-4b38-8a52-15e79e3e9134 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.144832s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.124628s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.080748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7aa91e61-7144-4d75-a32c-a98906812aa0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.123094s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.274004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_allocations.AllocationTestCase.test_create_allocation [0.192596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.138811s] ... 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-ede6c111-7645-4340-9f39-589e98b05301 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.078878s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.107157s] ... 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-adbb14b3-692d-40a2-8928-e546130a6799 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.086997s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.177661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.162710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.060693s] ... 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-64851928-be6f-4ae3-8c2c-a939233a634b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.089438s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.104970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.104525s] ... 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-8b4c4ebe-9701-4ed9-aa37-57ebad2a8f69 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.127210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.097938s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.102837s] ... 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-fc86fb0f-b730-496c-8534-77cded536594 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.130636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.072069s] ... 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-58c0837c-4488-4dd9-a8d5-877e206d6170 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.190519s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.122936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.105607s] ... 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-86b41e4b-a8f6-4512-b1bb-c49a6ab9ce25 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.087826s] ... 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-c581307e-bac6-4de6-822f-25792f636c35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.106380s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.177750s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.069545s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.102179s] ... 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-f9f7b43d-dac5-4e41-a6a8-f41f313a8d5f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.085032s] ... 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-8446eb66-2ccb-4289-b8a2-3cd9f76800c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.085155s] ... 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-3197bfd0-9204-4fa1-af39-e9f491e4412d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.191498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.064991s] ... 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-7f169a0f-fff4-48ce-b6ce-3375f5822945 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.042485s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.741791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.038296s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.080998s] ... 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-32013684-760c-4ce0-873d-834d1f2bc4a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.064615s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.164848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.103310s] ... 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-bb72add7-a701-4e92-bc34-61ff70e6d6e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.067527s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.057947s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.102497s] ... 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-7836e26c-e583-499e-bb20-a15c060d32dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.120277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_associated [0.095709s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.138652s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.MiscTestCase.test__fail_transient_state [0.277966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.887550s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.111402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.380919s] ... 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-202daab9-aada-4624-948c-bc42d937d7e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.083231s] ... 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-e2136055-9dd6-4d77-8617-0b2b32c585fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.157129s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance [0.210040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.195657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.162633s] ... 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-2ee46e68-5e92-421f-9d64-989123e05025 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.132456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.251734s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.175927s] ... 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-3daa8902-754a-49ca-9b76-f9bc626509d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.334264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.194587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.101149s] ... 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-e75f021c-7936-4eea-95a1-e407dba418dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.172357s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.111591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.175819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.138509s] ... 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-64283881-ee71-422b-a6dc-608a772ed4e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.157973s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.110893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track [0.057176s] ... ok 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_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.122007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.065752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.146697s] ... 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-7e40dc0c-4027-47f9-b407-6b8631e78d81 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.153212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.065743s] ... ok 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_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.202707s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.146248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.180038s] ... 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-2076cb0d-038e-49fa-bfa6-91ada0da6cf3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.100097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.101106s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.057826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.153050s] ... 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-6999f400-b6d8-4835-91b3-b88457987b7c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.066323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.145853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.257861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.049373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.083953s] ... 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-648f44f8-b09b-4769-9684-5d75e0bde24e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.072222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.069266s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.174688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_cleaning.DoNodeCleanAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.082764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [0.129298s] ... 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-c073f251-540f-42db-bb19-763feaa82d94 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.075824s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.062755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.035061s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.091321s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.198803s] ... 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-2b8d074b-96be-42ec-8506-8222b0dc6ffb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.104990s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.174985s] ... ok 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.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.147214s] ... 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-cfde8bb8-2644-4c44-90a7-d7b8539c9c22 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.139279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_early [0.493843s] ... ok 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.DoNodeCleanAbortTestCase.test_do_node_clean_abort_with_step [0.048096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.192632s] ... 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-406686df-13b9-42ce-9c47-15284894a5d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_state_set_by_driver [0.155345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ContinueInspectionTestCase.test_continue_ok [0.061644s] ... ok 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.ContinueInspectionTestCase.test_continue_with_discovery [0.045661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.120202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.178311s] ... 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-0b8d12d6-9dd5-4c07-abc0-9a2de2ff8655 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_wrong_state [0.082481s] ... ok 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.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.043347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service [0.116787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif [0.052496s] ... ok 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.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present [0.078341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service_abort [0.118345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.039071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.231810s] ... 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-3263817a-2976-492b-b698-aca6710da7dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.047841s] ... ok 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.DestroyPortTestCase.test_destroy_port_node_locked [0.043806s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.046578s] ... ok 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.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.039192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.188590s] ... 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-ddabdff0-1702-4b09-9db4-f138df63d1c2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.047911s] ... ok 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.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.028521s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.048716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.156416s] ... 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-21da38df-a0f2-43e1-934b-173cb20113e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [1.124204s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.084668s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.122031s] ... 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-03147a2e-61d1-4bfe-a6b1-9f9b817901db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.052617s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.076226s] ... 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-ad581bf2-47b1-4287-b667-7566c9b9d7e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.088273s] ... ok 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_continue_node_clean_automated [0.297494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeServiceTestCase.test_continue_node_service_abort_last_service_step [0.656497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.061406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [0.047217s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.165192s] ... 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-708dd5c3-d8b1-4a87-8533-920832820692 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_locked [0.164659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.102370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.109388s] ... 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-2250da74-c5f7-4b43-a072-4e9923e013df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.044330s] ... ok 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_continue_node_clean_automated_abort [0.265239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.067081s] ... 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-970b2f3a-3f3a-421e-a591-c8c7614fee99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_worker_pool_full [0.141534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.081043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.087377s] ... 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-bea6051e-6d7b-42dc-aabf-465c3ce7abe9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_wrong_state [0.186897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.182972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.154784s] ... 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-0c143355-5243-402d-8456-b2e13b593098 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_provision_action_unhold_service [0.088143s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.118428s] ... ok 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_continue_node_clean_automated_abort_last_clean_step [0.407941s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.185105s] ... 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-94152cea-da4b-433e-bec8-cf35412dca56 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.156351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_do_node_service [0.287151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.110833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_get_observer [0.183440s] ... 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-56c0d2d6-a5d0-4b3e-89ac-6fff1acba1c4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked [0.270617s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.081356s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service_maintenance [0.113306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_admin [0.156208s] ... 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-03989ac2-8f77-4c93-9279-14d463b97542 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [0.090420s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.145726s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.101081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.101829s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.105657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.058148s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_member [0.165543s] ... 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-957c54f7-0be3-4d4c-863c-f5d9c46ebc26 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.060344s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.207914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.093077s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_states_console_put_observer [0.139786s] ... 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-d535ec38-32f8-45ef-aded-2369af5ee4af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.109238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.219294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.104852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.135836s] ... ok {2} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state [0.109089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.194666s] ... 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-cb1a168e-c594-424c-bec7-f31934c44319 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.117940s] ... ok {2} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators [0.101111s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.129837s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.IndicatorsTestCase.test_set_indicator_state [0.096130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.143765s] ... 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-22a74538-5967-45a8-b786-930c418f0d3e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.103474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.114975s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.039553s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.063576s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.157901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.MiscTestCase.test__mapped_to_this_conductor [0.173580s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.170083s] ... 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-ce5d60f8-e9c4-48fc-94be-3c9783feced8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.085209s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_attach_virtual_media [0.105695s] ... ok 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.148858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.MiscTestCase.test_get_node_with_token [0.149646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.161607s] ... 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-22d39306-a171-450a-8a6e-86b3401e45f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.054490s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.045112s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.114385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.053368s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_iter_nodes [0.152157s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.159110s] ... 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-00af5a91-9b4e-498b-ba55-571905c006ad X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.055041s] ... ok 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_power_validate_fail [0.122272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor [0.052272s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.034355s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.129731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.127991s] ... 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-7023f671-a8e1-4ebf-a99a-29a206afdc1b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.041305s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.135712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state [0.059563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_node_with_token_already_locked [0.107068s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.043082s] ... ok 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_provision_action_unlocks_cleaning_automated [0.105440s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.056555s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_set [0.103140s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.050878s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.227096s] ... 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-d32eff26-b8fc-49d2-9f1c-26998f252083 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.080171s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.140509s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.075533s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.050964s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.104103s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.046782s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.233147s] ... 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-9b14093e-ddfe-4cd6-9365-d09e7b291879 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.032442s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.108191s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.038105s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.066869s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.089907s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.154827s] ... 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-53f5f3a5-a94f-44cc-a1f5-0b809aaec0a2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_manual [0.480666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.086814s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.070441s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_virtual_media [0.062081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.134662s] ... 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-c05b72c5-9154-4e1d-a380-c504fba880d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.120839s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.conductor.test_manager.NmiTestCase.test_inject_nmi [0.093924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_inject_nmi [0.043660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.069064s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.085757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.041052s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.189447s] ... 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-dee0449c-0348-46af-bfa2-2be1c6db0151 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token [0.209671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.NmiTestCase.test_inject_nmi_not_implemented [0.136042s] ... ok 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.HeartbeatTestCase.test_heartbeat_invalid_agent_token_older_version [0.110080s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.NmiTestCase.test_inject_nmi_validate_invalid_param [0.164173s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.249889s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.235498s] ... 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-ffebcafc-ea66-46d7-a188-b8c9ef4a6dab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.034308s] ... ok 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.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.132020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.043724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.118619s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.048300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.046769s] ... ok 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.HeartbeatTestCase.test_heartbeat_tls_required [0.130638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.171172s] ... 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-1917d565-13fa-4c69-9c46-646c692d4437 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.121282s] ... ok 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.HeartbeatTestCase.test_heartbeat_with_agent_token [0.126599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.126012s] ... ok 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.HeartbeatTestCase.test_heartbeat_with_agent_verify_ca [0.128565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.061965s] ... ok 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.HeartbeatTestCase.test_heartbeat_with_agent_version [0.133824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.115844s] ... ok 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.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.106326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.139284s] ... ok 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.HeartbeatTestCase.test_heartbeat_with_required_agent_token [0.159496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.138923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [0.105156s] ... ok 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.HeartbeatTestCase.test_heartbeat_without_agent_version_anaconda [0.178714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.077847s] ... ok 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.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_version [0.083176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.045349s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.033494s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.043901s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.083612s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.027564s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.034064s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target [1.171213s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.081469s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.041015s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.042096s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [1.127606s] ... 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-6fb73ec7-1765-47a3-b545-10aaf950d02d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state [0.083498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.109814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.045489s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.098434s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.072548s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.054725s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.130474s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.039443s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.068719s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.040492s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.226189s] ... 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-72b693db-2f79-4b28-a8d6-288ed7c34b4d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.070674s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.061194s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.052316s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.096326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.224456s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.107267s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.085650s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_with_disable_power_off [0.034645s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.037735s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware [0.055837s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.035470s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_admin [0.327130s] ... 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-c6182dcd-77fb-478e-a17d-11953f8674c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.049295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.178883s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.066631s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage [0.045746s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.033605s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.027739s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.036752s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.099948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_validate [0.033129s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.173309s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.060760s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_member [0.243939s] ... 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-ffb39594-ed58-4733-a209-059156fa61ba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.062025s] ... ok 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.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.050085s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.024283s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.121414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_get_observer [0.292126s] ... 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-ec782e54-2f1f-4796-978e-a7594c32fc3e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.261488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.392533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_admin [0.150745s] ... 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-2bf5b82d-746f-4104-9a09-f676a3cbf797 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.047920s] ... ok 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_enroll_on_acquire [0.432704s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.058942s] ... ok 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.062070s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.051740s] ... ok 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_locked_on_acquire [0.052232s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_member [0.170981s] ... 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-d570c290-c524-4787-961f-d1070e23ca7b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.056595s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.062852s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.049789s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_put_observer [0.148363s] ... 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-4bf44bdd-1e1e-4008-aff4-6c49075e9771 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.433896s] ... ok 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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.065482s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_admin [0.132811s] ... 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-5cad510b-77ce-42c0-8d2b-0e5ed5f868b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.089103s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.152873s] ... ok 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_steps.NodeVerifyStepsTestCase.test__get_verify_steps [0.059647s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_member [0.131342s] ... 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-b6a6b107-603c-4bfa-97f4-a00ce920618e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.045339s] ... ok 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.ManagerTestProperties.test_driver_properties_ilo [0.122934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_priority_override_fail [0.029552s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.052101s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.038867s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_delete_observer [0.148820s] ... 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-dd5b210e-bbb4-408e-955e-8b9030269e31 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.152814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_unsorted [0.036070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.068045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.143651s] ... 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-b6a6acf1-e0e7-44a1-b63a-c69000f0d1e9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management [0.139358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.072995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ReservedStepsHandlerTestCase.test_reserved_step_power_on [0.068210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ReservedStepsHandlerTestCase.test_reserved_step_power_reboot [0.045352s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_member [0.144911s] ... 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-225307a9-a154-4071-bdbe-0304fa94ab09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.134695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.037490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.055304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.150491s] ... 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-72472cab-e631-4e66-bb29-a97bb2f590f8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.076671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.084661s] ... ok 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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass [0.191547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.028389s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.042194s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.016720s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.024328s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.043265s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.017381s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.114045s] ... 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-dba45cab-5026-4321-bbe5-d4fb80b09f73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.026051s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.036917s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.031104s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.123751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.020013s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.018727s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.029533s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.018871s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.148787s] ... 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-58f4ada3-cf3b-4d1f-9b13-7849f56cb957 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.131846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.019035s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.020864s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass [0.160276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_utils.CacheBootModeTestCase.test_already_present [0.050262s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.139077s] ... 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-cb4d5909-55b7-461d-9de3-a691e539ef6c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off [0.066326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.170800s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_admin [0.095557s] ... 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-d782c914-4cba-4d57-9713-4dfe058b9ef3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off [0.058927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheBootModeTestCase.test_change_secure_off_to_none [0.106103s] ... ok 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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days [0.207399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off_with_disable_power_off [0.062147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_member [0.092452s] ... 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-fad401ed-145e-48a2-9c2e-bd8ab80de28a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on [0.049696s] ... ok 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.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work [0.083450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_utils.CacheBootModeTestCase.test_failed_boot_mode [0.129405s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on_with_disable_power_off [0.056220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_not_reached [0.053741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_get_observer [0.138464s] ... 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-b4272403-3d61-4b22-a7c5-d089afeb6913 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure [0.083738s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [0.043225s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_admin [0.092888s] ... 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-a6407d70-b317-4388-8998-9176f2454349 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor [0.208220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.096224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheBootModeTestCase.test_noneness [0.143463s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_member [0.085435s] ... 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-0bfb492f-8b45-489e-9be3-5a21e9aaf3a9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.050321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_validate [0.066661s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_post_observer [0.118979s] ... 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-8d592664-5b79-4586-9a76-35c7b015d31c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.185505s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.CacheBootModeTestCase.test_retreive_and_set [0.194933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.121116s] ... ok 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.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.132641s] ... ok 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.CacheBootModeTestCase.test_unsupported [0.119476s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.080074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.171508s] ... 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-d09c6e58-f488-4672-833b-e81e036398ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.092985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.095713s] ... ok 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.NodeInspectHardware.test_inspect_hardware_validate_fail [0.117492s] ... ok 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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.052942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.155766s] ... 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-78851721-af84-491a-87cf-8dc568a1c2ff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.049333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_config_false [0.125043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.051643s] ... ok 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.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.209372s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.097411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.154468s] ... 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-26aad316-e2a7-4a7c-ae6d-0a4e2b3e38e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.062848s] ... ok 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.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.051893s] ... ok {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.053139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.076910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_error_blocks [0.052400s] ... ok 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.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.067094s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.058865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_inspected_no_heartbeat [0.047976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.194773s] ... 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-eb393165-4974-42eb-acb0-970ed759ff04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.060998s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.058848s] ... ok 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.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.087778s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.061701s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.075298s] ... ok 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.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.084861s] ... ok {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.058915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.121707s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_member [0.233789s] ... 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-37ca8316-8c4f-4063-9353-4ba304f3b985 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.093146s] ... ok 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.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.140812s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.109737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.060489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_via_driver_info [0.124871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.058553s] ... ok 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.api.test_acl.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.224284s] ... 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-f1d16002-58db-42ea-b2da-df0fe89c1488 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.093676s] ... ok 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.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.231804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.070351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetConfigDriveImageTestCase.test_build_empty [0.046560s] ... ok {3} 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. {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.045415s] ... ok {3} 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. {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.107724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.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. {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_admin [0.059057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5474e3a4-ce2f-478d-b5b6-a3c145e6118e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.108285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.302393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_member [0.109196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3361cfc-be57-49ed-a173-38c8b471b896 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.096404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.063304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.044121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_get_observer [0.067473s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8fd1a00e-255a-46fa-bb3a-4684591afff5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.080568s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_admin [0.088086s] ... 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-04d169c3-c4c2-49d1-aa20-1471c42b57c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.049966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_member [0.097390s] ... 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-f88bfcde-6b68-4c6b-993b-40fe58be3486 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.066270s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_post_observer [0.126614s] ... 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-d284ed3c-27e6-4854-ab11-22953c7a4a42 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.115460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetConfigDriveImageTestCase.test_build_populated [0.722341s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.027825s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_admin [0.069726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-25d3302f-7755-4265-ae82-78e6e805fd0d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.084191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.052400s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_member [0.055500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-366523fb-868b-424b-993d-d40da23eeca6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive [0.049858s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.025432s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.096377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_clean_steps [0.040246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_detail_get_observer [0.109155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-877a0223-0cf9-45dd-ac66-899512215b70 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.634443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip [0.072146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.122948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.051577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.113180s] ... 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-48af250f-0d90-4606-80ee-0b759e5c124b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.087637s] ... ok 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.RaidTestCases.test_get_raid_logical_disk_properties [0.164195s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.083511s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.046760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.100789s] ... ok 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.RaidTestCases.test_set_target_raid_config [0.103856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.052341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_steps_exception [0.055859s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.067565s] ... ok 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.RaidTestCases.test_set_target_raid_config_empty [0.097713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.040547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.GetTokenProjectFromRequestTestCase.test_no_token_info [0.091989s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.059951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.344523s] ... 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-3af9482a-d8a9-4081-8a22-7e0bae92b4a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.044564s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.104775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.053525s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.052858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.082482s] ... 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-22b5b2d9-d9b4-456f-a5ce-23ff8927a79b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.046422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.051465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.046806s] ... ok 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.SensorsTestCase.test___send_sensor_data [0.122218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_utils.StoreAgentCertificateTestCase.test_no_change [0.029461s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.085158s] ... 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-97b8e24c-0a4c-409a-a434-7a10715a341a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.039937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.StoreAgentCertificateTestCase.test_store_existing [0.028849s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.040410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.StoreAgentCertificateTestCase.test_store_new [0.040242s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image [0.027977s] ... ok {2} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.036537s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.096489s] ... 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-527cde2b-fce1-4b4f-9438-bf813fdf6a1c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.029690s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.021827s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled [0.165448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.059428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_missing_args [0.026335s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.079881s] ... 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-34a1dbbd-f5cd-4447-ae49-b574fef4565a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.033579s] ... ok {2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception [0.074642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_missing_args_local_http [0.039127s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.058799s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e2b5a722-f342-4ac6-8970-016b29bc6935 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.032378s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.127320s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.025633s] ... ok {2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.070109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.075031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e11d6e93-0100-4f45-8342-bb9abd3a4e7b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_empty_result [0.032691s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_has_retries [0.024389s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_multi_command [0.022459s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command [0.019390s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_one_worker [0.121357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command_mismatch [0.023073s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.104664s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e75a302b-5afd-48fe-923e-8671029d46ea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [0.146720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook [0.033667s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook_no_hook_registered [0.032946s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_admin [0.082967s] ... 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-da841392-8c8a-4d4a-8ac3-de9ecd4d9060 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot [0.052631s] ... ok 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.SensorsTestCase.test__filter_out_unsupported_types_all [0.149971s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.122526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_deploy [0.053148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_member [0.110698s] ... 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-69d765f1-e67f-456b-a033-2478921553a3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.089033s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail [0.055184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PostStepHooksTest.test__post_step_reboot_fail_deploy [0.039824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PostStepHooksTest.test__post_step_reboot_fail_servicing [0.040821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PostStepHooksTest.test__post_step_reboot_pregenerated_token [0.064024s] ... ok 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.SensorsTestCase.test__filter_out_unsupported_types_part [0.162421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_get_observer [0.180523s] ... 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-7321170c-cecb-48ea-a16b-1ce3c27b6575 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test_post_clean_step_hook [0.040458s] ... ok {2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.273708s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_handshake [0.058652s] ... ok {2} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_types [0.023521s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.090272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_client_auth_invalid_fails [0.017677s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.040892s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_in_choose_security_type_fails [0.036085s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.190449s] ... 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-955fea0d-ed2e-451f-8f08-a7680341acb6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__sensors_conductor [0.200925s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.051146s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_security_handshake_fails [0.047483s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail [0.019502s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.028360s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail_server_message [0.024913s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.030769s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_host_version [0.017088s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_sec_type_cnt_zero [0.019359s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.024861s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_tenant_version [0.023206s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.026295s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.148735s] ... 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-b55fb275-ef5f-466c-bbde-cc3dd2678813 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_full_run [0.026243s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.162737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_parse_version [0.017308s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.047989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [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.api.test_acl.TestRBACScoped.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.119337s] ... 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-9b554e50-ff33-4ef3-9666-03139ee828fb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.113465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_admin [0.126040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2b80cde8-6c38-4fc9-973e-caf8684118c2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.144897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.271657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_member [0.137012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-72334a14-c799-42e7-91d3-edd02f0ea84c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.055737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection [0.401434s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.152571s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.059549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection_raise_OSError [0.073786s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_get_observer [0.132738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1aff19da-8968-442f-bf9a-3696109b8fc3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.102557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.050247s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.039560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off [0.046464s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_address_string_doesnt_do_reverse_dns_lookup [0.127739s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_admin [0.137881s] ... 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-f5541a0d-f2f9-453b-a42c-b7cf3b449eef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off_and_fast_track [0.042769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.047854s] ... ok 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.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.191130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client [0.103485s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.040453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_member [0.142977s] ... 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-33484f40-ab53-4dbe-ac3b-68c9a1514a87 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.083748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_http_forwarded_proto_https [0.081199s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.076404s] ... ok 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.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.074079s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_ipv6_url [0.072326s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_disable_power_off [0.053893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_post_observer [0.129833s] ... 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-2ae87b74-abb2-49bc-b193-b3efdbde4463 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_service_error [0.046452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_allowed_origin_header [0.087835s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.030481s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.028997s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.029668s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_bad_origin_header [0.065476s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_admin [0.119086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-13c7636b-e024-48d2-b2dc-dd44c1ae8ef4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.177673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.041250s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.034394s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.080235s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AsyncStepTestCase.test_set_async_step_flags_clears_polling_if_not_set [0.032228s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_member [0.112366s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-713587e9-6065-4a8f-b777-1be31c3db27f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.033580s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.031432s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.022274s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.023876s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_detail_get_observer [0.104027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d68c6165-6b1f-4dc2-8147-9e12c4162514 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.028214s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.022170s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.184741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.028829s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.021359s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.028227s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_admin [0.142170s] ... 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-69d1aa61-f39f-49f4-b4ec-7457bd003688 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.028106s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.057679s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_blank_origin_header [0.458347s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.047812s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_member [0.128238s] ... 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-c9f7a190-9a96-4a01-8a16-9779e6367ce5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.029739s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.045476s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_get_observer [0.087178s] ... 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-c3013f62-40ef-487e-b362-298517de9428 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_no_origin_header [0.131142s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.055200s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.038232s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.027712s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_admin [0.127677s] ... 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-f4d9390f-ed9d-4992-83d9-03a9c1893cf9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.022909s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.025406s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_token_invalid [0.167025s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.051393s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_member [0.130562s] ... 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-1ad38728-ecc3-447c-8604-4a6513e38e76 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.070680s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.597047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_non_default_ssl_min_version_is_set [0.145277s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.031458s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_patch_observer [0.079766s] ... 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-f5583eaa-b883-49b7-afc5-31b72e26daa5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.032128s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.028091s] ... ok {0} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_http [0.100211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_admin [0.066373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c47a2ea1-1a01-4169-a5b4-a8086a9e6853 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_checksum [0.031698s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.025201s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect [0.146695s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_with_auth [0.032620s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_member [0.064305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3d2f9e73-b6a3-435c-9057-a05de516c96e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.037285s] ... ok {0} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_local [0.118583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.OtherFunctionTestCase.test_get_boot_option_default_value [0.021594s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_ports_port_id_delete_observer [0.072043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ada7db16-9d82-462c-b291-5129485990d8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.023455s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.023814s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.025402s] ... ok {0} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media [0.090368s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_admin [0.070217s] ... 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-77a76523-7d7b-4460-9c78-872322d1cc19 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect_3_slashes [0.155192s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.037823s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.021076s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_member [0.061401s] ... 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-e988b1e0-8153-4310-bb35-d901b6dd8266 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.026377s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.021404s] ... ok {0} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.116942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_get_observer [0.063180s] ... 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-e53eab4f-3927-480e-96a7-834ad0cfa8b3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_is_not_set [0.148706s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.066881s] ... 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-490aa210-9bd8-4580-a6ce-e9892677b2df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_prepare [0.109649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.OtherFunctionTestCase.test_set_failed_state [0.134494s] ... ok 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.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_member [0.096906s] ... 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-09570112-8677-4e21-9362-96a5967f2869 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_not_set_by_default [0.149969s] ... ok {0} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.085634s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.103616s] ... ok 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.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.039893s] ... ok {0} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.054459s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.068991s] ... 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-0e265176-6adc-4ff9-9f3c-d9096509f669 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.050207s] ... ok 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_periodics.NodePeriodicTestCase.test_limit [0.059658s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_admin [0.066789s] ... 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-291ef211-c3fe-4d89-aa10-e85c78e32750 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.056206s] ... ok 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_periodics.NodePeriodicTestCase.test_never_run [0.048915s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_member [0.064493s] ... 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-e6235b56-d40f-40b0-aba2-d47c120dbdf9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_get_observer [0.059508s] ... 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-d690f309-4eb2-431c-b6d1-321750af689b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.076938s] ... 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-4f7095de-feba-4391-acce-7251de59f26f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.072975s] ... 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-7de20b4f-c507-4fbb-83ce-91b4ea659225 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.333794s] ... ok 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.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.035742s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.023923s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.030058s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.026294s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.019383s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.043566s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.046508s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.040585s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.029166s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.026872s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.028263s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.325720s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.029584s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.022329s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.023496s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.026909s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.040292s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.036099s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.039066s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.557966s] ... 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-825643fd-b1b1-4a85-bbdf-bab73532920f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.040888s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.029585s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.052292s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_gpt [0.058486s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_admin [0.144664s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d2cfaf13-0e5c-461b-a31d-eed57053feb3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw [0.056376s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_convert_to_gpt [0.036045s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.025587s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_disable_validation [0.050275s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_member [0.145946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-11497b00-066f-4950-8f6e-ab15bd8aef8d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback [0.032807s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.024165s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_not_safe_image [0.023823s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_get_observer [0.065590s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0cd132d1-6ded-44bd-80fd-231620c13df9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_part_already_exists [0.031332s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_image [0.042759s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.026595s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_admin [0.107261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9bfade05-53bd-4bb6-b4a2-724cabbb44f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_with_image_auth [0.025986s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.040076s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_disable_validation [0.054398s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_member [0.116082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95af9025-6145-4007-b618-65c64e2300ec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.019054s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail [0.024825s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.018838s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_get_observer [0.056165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5604bc5a-8da5-4ed1-a89e-c1bc12d5964d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.026637s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.020439s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_admin [0.062752s] ... 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-c3c2b931-fd94-45c2-9f71-7ac1c2a2c829 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.024767s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.020635s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.020574s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.017109s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_member [0.069141s] ... 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-b4936ab8-67b5-4209-81e1-9a9d6785b3ed X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.017217s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.790693s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.039883s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_connectors_post_observer [0.059959s] ... 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-d49f1d43-2cda-4deb-9fd8-229d9dedb332 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.023222s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.018911s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img [0.030056s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.077846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/141e855e-5515-4b55-9af7-96e78131b1fc WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ae1a4713-b710-4468-be3c-b3399eaef46e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 141e855e-5515-4b55-9af7-96e78131b1fc could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img_not_cached [0.024612s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.035126s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.059577s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/7f33b07a-52e1-4d63-98fd-cd33c77d8fce WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ce2a88c8-37e9-48e6-9313-ed51c8793c51 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 7f33b07a-52e1-4d63-98fd-cd33c77d8fce could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test__download_image_iso [0.030645s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test_fetch_image_iso [0.021554s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.021442s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.066215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/8e923dca-eca8-478e-af2e-fbd5d23321c5 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4579e50e-de18-45cf-a4a4-04bb559d7b7d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 8e923dca-eca8-478e-af2e-fbd5d23321c5 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.074959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/363e68ba-7e57-47e8-b0c7-d4b29cd69d64 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3f71ef73-4049-45f3-b12b-6bad519d74a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 363e68ba-7e57-47e8-b0c7-d4b29cd69d64 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.097473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_api.UpgradingTestCase.test_check_versions_conductor [0.348434s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.064277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/2901e54a-8046-403b-a95a-a77964c1bced WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7ab5b3a8-c48e-4f4a-a244-271f76c91054 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 2901e54a-8046-403b-a95a-a77964c1bced could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.070089s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.073182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/385f8eb9-7628-44be-8d4c-d5a9d0ee83c6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5604103-d44e-4021-9d52-02e07c775e3f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 385f8eb9-7628-44be-8d4c-d5a9d0ee83c6 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple [2.094618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.063911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/011c7896-37c8-4f78-b25d-5a718e1ea797 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a9ee63a0-c7af-46f8-9f6a-81b6d1cb1753 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 011c7896-37c8-4f78-b25d-5a718e1ea797 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop [0.064571s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.077594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/b4e77a43-bf99-4d96-b06f-2c04d92948ce GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7dc0fb44-8676-4647-8455-365b35b9000c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector b4e77a43-bf99-4d96-b06f-2c04d92948ce could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.299821s] ... ok 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_all_deployment_steps_all_steps [0.104562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.083719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/22d6f043-b3c8-4b7f-a839-4554fe09e31d GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-032cc9f3-7c67-42db-a2da-36fb8a4cb5c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 22d6f043-b3c8-4b7f-a839-4554fe09e31d could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.053744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.030756s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.303261s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.035358s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_admin [0.077425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fcb87d83-467a-4ae8-974b-7d63bc91e51d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.036612s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.031371s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.119030s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.035411s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.035211s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_member [0.109556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b731ffff-159f-49d1-8643-35315411f7df X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.024001s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps [0.098173s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.024315s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.023394s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_get_observer [0.064477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4a20ce35-790c-474b-855f-500a8fcf67a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.032240s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.028521s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps [0.101744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_admin [0.072395s] ... 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-7ee316e0-a0f9-45be-ab3a-ecf0d5bc8a7f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.024663s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.244819s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.037488s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.032736s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_member [0.070779s] ... 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-dcc3f7e3-5cb9-41de-8348-ee7d5a620353 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.039157s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.100343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.052411s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_targets_post_observer [0.085119s] ... 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-bd213c0c-e49d-41d3-bcbc-4ee569d24ad8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.044509s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.109049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.038343s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.093907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/4ed8352a-5a98-4dcd-ac56-486e88b9697c WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d372a709-b163-4a4e-a71c-b03ad503d74e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 4ed8352a-5a98-4dcd-ac56-486e88b9697c could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.070991s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.087780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.037819s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_member [0.093634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1f02c64a-0e77-4274-9553-b7de9d1f3372 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d9f05320-dcbf-4652-9aff-9cc77ab35a64 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1f02c64a-0e77-4274-9553-b7de9d1f3372 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.319526s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.045783s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.094117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.LookupNodeTestCase.test_by_macs [0.039877s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.072147s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/8e16cb05-5105-49e5-992c-e54e2d00517b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4e1fc01e-9fc6-4853-8dae-ad06b44ba3b1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 8e16cb05-5105-49e5-992c-e54e2d00517b could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.037848s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.038533s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.079012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/7b5794fc-fcf9-4f09-b3eb-20954f7fc9dc WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e861f175-7fd0-48c1-a55b-7ef97af36d23 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 7b5794fc-fcf9-4f09-b3eb-20954f7fc9dc 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.115893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.LookupNodeTestCase.test_by_uuid [0.049112s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.070832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/e5f859a2-210b-4cee-abf9-614f60982b32 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d26c5861-94d3-4052-b800-70725a841ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e5f859a2-210b-4cee-abf9-614f60982b32 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.044583s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.044271s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.068503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/cd899aa3-fb30-4d4b-9c3f-f205d1457dfa WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fdd33136-b805-4fad-801b-8ac6ab0c98f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target cd899aa3-fb30-4d4b-9c3f-f205d1457dfa could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.280572s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.043133s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.154409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.029715s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.064512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/19a615a5-85e1-474c-ac1e-38176bfe15f8 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5ee0416-9ba8-4937-b63c-0c2ef8a359f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 19a615a5-85e1-474c-ac1e-38176bfe15f8 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.043809s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.042869s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.051623s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.070016s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/49198fb1-e59a-45d6-9645-bd11d44bdc5c GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c4984794-b3e6-4950-9150-64473ff94c4e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 49198fb1-e59a-45d6-9645-bd11d44bdc5c could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.053196s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps [0.123901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.046581s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.036248s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.082924s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/c8705550-54e1-4a7f-bb77-f0e5ea65e003 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2c2e5ead-a461-48a1-a375-0a0ad6a848a2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target c8705550-54e1-4a7f-bb77-f0e5ea65e003 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.047838s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.051931s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.041906s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.033137s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing [0.109686s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_admin [0.072053s] ... 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-081048d1-1858-4a96-972e-9fde6e7056ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.042695s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.046376s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_member [0.064483s] ... 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-49f59485-c780-4a0e-af71-08bcf328986f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.045693s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.060939s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps [0.102943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect_utils.LookupNodeTestCase.test_no_input [0.040224s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_get_observer [0.063623s] ... 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-e578c360-a261-4540-b704-46b603f9b191 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.026720s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.073414s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite [0.024608s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.091333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.068372s] ... 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-51370141-f1cb-4a5e-93f9-01f4076430d3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.054156s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.037866s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.028153s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.035310s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.068948s] ... 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-29b9e79d-72f2-449a-912c-fba60989eeba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.036254s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.030709s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps [0.100428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_exception [0.031726s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.039734s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_first_call_to_address [0.036589s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.087816s] ... 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-bcbee91a-673b-4c88-9ed6-d2b3e877c01c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.050266s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.039222s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.025373s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.042192s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.136456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.063955s] ... 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-c505a346-eb11-470b-a87f-7db89843c12e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_try_different_cipher_suite [0.027660s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.030938s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.025107s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.040025s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_check_exit_code [0.025611s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_member [0.074163s] ... 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-50eb4a80-87ff-4bb9-a29a-12b3ab0ea257 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_dual_bridging [0.025890s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_empty_username [0.024389s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.048076s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.062692s] ... 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-d2a1845f-2dbb-4b57-af7b-cd28748fb0e8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_ironic_retries [0.026208s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.035416s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.150674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_port [0.028319s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.032698s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_single_bridging [0.032058s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.031152s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timeout [0.032216s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.034151s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.101520s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timing [0.028142s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.037135s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_timing [0.032802s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_username [0.025432s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.031124s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_str_password [0.022843s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.097043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.038392s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_with_numeric_password [0.034821s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.040171s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.033423s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.030140s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.024732s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.051958s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_admin [0.346702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-385e388e-9a6e-4e31-a315-9f6a71fac539 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.150050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.072001s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_member [0.065325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a6b2e5c8-0852-44c9-848b-74fa07cca420 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_get_observer [0.084908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0ab25fa4-47de-47d7-9d34-2344f51ff4d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.085779s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.145827s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.054071s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_admin [0.085330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-df69b225-f3c7-4031-8971-b201f08a33fc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.272209s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.051924s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.105553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.037089s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_member [0.068813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-913261a7-2c9b-4ebe-a598-bafe89954150 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.025236s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.039394s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.102899s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.034285s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_driver_name_get_observer [0.089290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2ed31b53-1901-4595-8aac-2d418b5bd07f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.055930s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.086386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.034688s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_admin [0.088157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ed6c6dc7-e022-46e1-99e5-5ef3ddd09027 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.027050s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.029926s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_node_busy [0.026789s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.106048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_member [0.089961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-738e6d29-4e0f-4975-a33d-f0e29253c18f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.036341s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_timeout [0.042352s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_properties_get_observer [0.087528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9669ebcb-6a17-4934-b647-c0003e4db007 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.100042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.038857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.037614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.077219s] ... 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-1e3edacc-ce06-4078-bca7-7fc851bbcb33 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.034810s] ... ok 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.104576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__start_console [0.050321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.083408s] ... 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-af3a5328-6dd0-45c3-93de-024257d5d606 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.044178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.614417s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.100670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__start_console_fail [0.048562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.080606s] ... 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-d7e1b4e2-36af-4756-b8c7-4c5ebd06d9d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.036342s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.079991s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.083663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_console_validate [0.028811s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.084516s] ... 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-5c72fad6-3795-44d0-bee2-87a947830ebb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.028495s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.042169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.028782s] ... ok {2} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.082314s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.054082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.039316s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.077240s] ... 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-0b1f3687-95c5-4d51-8f2b-863a58ec33b0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.029304s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing [0.052558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_get_console [0.037434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.079782s] ... 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-b7f1338e-02cf-48aa-8540-ceb283a6c6ef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.101900s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.051588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_start_console [0.037950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.045993s] ... ok 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_set_node_deployment_steps_skip_missing [0.056880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.088438s] ... 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-f14647bc-0f28-4e33-b317-2b21256cefaf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.094816s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.039281s] ... ok 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_task_manager.TaskManagerTestCase.test_excl_lock [0.037094s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.031162s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.059640s] ... 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-e9a63631-7efa-453e-b1df-00d5629dd96a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console [0.040927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.041536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.103688s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.076475s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.072153s] ... 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-27939c68-5596-4084-a6ef-bef3218371f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.052239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.055289s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.037785s] ... ok 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_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.079178s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.077269s] ... 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-0b397b44-9190-4740-8021-baafdb19a3cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.043246s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.040560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.032095s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.071023s] ... ok {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.022785s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.076438s] ... 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-cd4497ab-bc17-40b9-9c2e-d651676014fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_pxe.HttpBootTestCase.test_http_boot_enabled [0.062444s] ... ok {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.025817s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.059804s] ... ok {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.039519s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.073011s] ... 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-9ad5548a-2929-4bec-9b1f-97377ae01e09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.039338s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk [0.087954s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.057065s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.040179s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.100074s] ... 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-83d85251-721f-468a-9f62-94e6085ce51a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.045525s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.071127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.055144s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.060047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.067566s] ... 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-3f4be001-6fd0-4933-b65b-cdcd8861d1e2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.025971s] ... ok {2} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.043102s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.061308s] ... 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-50e5a4c8-59d6-48ef-a1e0-dd0592bd00bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.067655s] ... ok {2} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.050429s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.064483s] ... ok {2} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.082647s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.312166s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.053181s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.029604s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.040959s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_admin [0.074650s] ... 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-9e6c095e-35f4-4bdb-bfb9-c24e4b0792bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.080521s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.035158s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.062671s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_member [0.063051s] ... 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-eec2f367-caf7-4992-ae60-326d67762f25 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TaskManagerTestCase.test_excl_nested_acquire [0.051993s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.055196s] ... ok {2} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.085876s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.046039s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_get_observer [0.064152s] ... 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-9918ec85-f785-4ab1-8247-221834efe860 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.TaskManagerTestCase.test_no_driver [0.040914s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.066250s] ... ok {2} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.080107s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.039297s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.084951s] ... 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-25a62185-9296-4eb1-93d7-d6618b475f72 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.063277s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.033916s] ... ok {2} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.056653s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.043050s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.074147s] ... 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-e6a86bf9-4fd8-41db-9e66-1a0a9570862d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.055844s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.060007s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.059649s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.070901s] ... 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-91d1f219-7b50-473e-a1d3-b78534f20681 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.072214s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.050373s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.043035s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_admin [0.061813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-814dfd6a-090c-46e4-a477-644eabe05dfe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.076219s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_with_description [0.078516s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.076272s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.051098s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_member [0.078350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e342e7c0-c194-4913-a349-0c91bfbc5d2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.055799s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.040141s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.048943s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.043309s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.061417s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_get_observer [0.084441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e879cc2d-a030-4255-89f5-e52694228b4a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.056484s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.031352s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_admin [0.063652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6f88ddb1-62d9-4ab0-983c-1a0f74f12e38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner [0.102508s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_member [0.064001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0dbfe89f-1967-4ff3-b817-1a1ce5c90c43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.099872s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match [0.101214s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.063039s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_conductors_hostname_get_observer [0.086777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec0fe5a2-34e8-4d66-b52d-8fcdf080890a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.097114s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.080316s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_admin [0.107781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4abff850-b530-4e5a-95d9-e36a756b8e3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.375286s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.052578s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match [0.068333s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.049999s] ... ok {3} 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. {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.060318s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.053213s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.086670s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_post_observer [0.097269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a1b31771-a95c-4573-97e0-9393e04e9dfb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.051731s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.063824s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor [0.064481s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.063171s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.064394s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.017971s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.016033s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_admin [0.103576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3eeac48c-3507-4d10-8c8e-c7bed8c9ba96 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.015481s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.104101s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.016234s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.016767s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.017169s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.016907s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.071098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.017694s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.123242s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.017362s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_member [0.124458s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a658d5f-09af-47b5-be4b-c5e522b3cdd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.016529s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.016215s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation [0.062390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.TestBareDriver.test_class_variables [0.018658s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_conductor_groups [0.079014s] ... ok {1} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.025688s] ... ok {1} ironic.tests.unit.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.023928s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_get_observer [0.114287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6f4616b1-1e23-4bef-b098-6a02e72e8807 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.090299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner [0.080905s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.052564s] ... ok 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.038064s] ... ok 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.040129s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.071946s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.073216s] ... ok 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_with_smart_nic_port [0.039826s] ... ok 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.024391s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.073526s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.074993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_node_id [0.049629s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.071475s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.075810s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.068030s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.073414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.318885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/96f54bbb-240b-4488-b248-04fa917513aa WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a3b8f461-e6bb-43b7-8ca1-706532520989 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 96f54bbb-240b-4488-b248-04fa917513aa could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.067970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.043644s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true [0.084905s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_member [0.075267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e780d02d-7f60-418d-b12e-2b6c112125e7 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f5f1609b-c03b-43c7-bf10-aa74e953f3e0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation e780d02d-7f60-418d-b12e-2b6c112125e7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.072830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.068410s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.055937s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.056973s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.059576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.068364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b5b90ba1-75ee-4132-872c-2a0f9382031f WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fff4ab5a-e00d-43d5-bf3f-1eb33e4fa64b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b5b90ba1-75ee-4132-872c-2a0f9382031f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.054285s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.080203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.081202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/fbe85de9-2fef-4e32-a62a-a7d672a248d0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fe14cfaf-750e-4a9c-b6f7-3a59abdeeeac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation fbe85de9-2fef-4e32-a62a-a7d672a248d0 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.128061s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.035251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.071589s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.032957s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.037276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.106688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/c676e495-d986-454f-b120-7cf777e890a3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-69d522e8-1516-4b37-bbf6-61cdd863489f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation c676e495-d986-454f-b120-7cf777e890a3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.095853s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.043021s] ... ok 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.NodeHistoryRecordTestCase.test_record_node_history_noop [0.145963s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.034481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.058786s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.034252s] ... ok 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.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.052495s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.136211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/f02561b2-8849-463d-b430-5d2b2913b461 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b867d6d0-024a-45fa-8587-06195157b303 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f02561b2-8849-463d-b430-5d2b2913b461 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.039223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.068664s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.050942s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.041906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.059425s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_parse_sleep_range [0.033811s] ... ok 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.ServiceUtilsTestCase.test_wipe_service_internal_info [0.078849s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.033413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.052782s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.127861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/6f502971-ebb6-4007-989c-66dc4ff5372d GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bcc803f3-483a-46bb-b0dc-3d9c60bc0525 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6f502971-ebb6-4007-989c-66dc4ff5372d could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.045394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.055011s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_range [0.034787s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.099773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.034529s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.115375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/90f8629b-d41e-48b1-a492-18de26275800 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-957e0d1f-366a-46a9-b76b-f93691eba518 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 90f8629b-d41e-48b1-a492-18de26275800 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.073743s] ... ok {1} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.031680s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.081242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ilo.Ilo5HardwareTestCase.test_override_raid [0.055714s] ... ok 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.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.061482s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.034082s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.078358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.124133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/48b1c2ba-ec4d-4a70-90ff-47871f78f957 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-938b3daf-1600-47e1-ad58-7e43c3bbcf85 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 48b1c2ba-ec4d-4a70-90ff-47871f78f957 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.058913s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.037123s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.035024s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.071713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_update_port_duplicated_address [0.064218s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.047935s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ports.DbPortTestCase.test_update_port_uuid [0.048968s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_admin [0.129769s] ... 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-e085a1c6-ec19-4c3f-a7a6-4446b8d9b535 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.076282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.051474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.041373s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.029905s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.019209s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.021340s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.091932s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.022015s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.098887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_member [0.133875s] ... 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-bebe0fcd-f4fe-43aa-856c-aec7d9c4906a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.079825s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.096083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_get_observer [0.121806s] ... 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-175891aa-eecd-4026-b6eb-864d9aef253f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.095325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAnsibleDeploy.test_clean_up [0.088757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.231729s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.019689s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.099984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.018864s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.018183s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_admin [0.130248s] ... 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-658cd51e-e63c-4873-802c-eafcd0acdbf0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.097945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.021758s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.028527s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.020847s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.125228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.038480s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.100277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_member [0.141307s] ... 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-2a88d5d8-f1dd-4c66-b325-076f6c96a96f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.042878s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.027427s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.084971s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.109789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.051321s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.033818s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_nodes_allocation_delete_observer [0.134877s] ... 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-f146081c-d78c-4366-a4b0-b1676727555b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.021553s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.082522s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.115817s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.020067s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.025016s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.036581s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.082646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.023134s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.019130s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_admin [0.133272s] ... 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-e83d5dd5-76ce-4c61-93f8-693c42e8eda7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.019143s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.052608s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.020587s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.043682s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.024485s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.101847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.020418s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_member [0.137831s] ... 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-53eb6dc4-fa40-4e62-abc7-43254a662607 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.019883s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.019246s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.019113s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.018597s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.018911s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.097371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.019569s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.018670s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_post_observer [0.135793s] ... 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-fb821eba-3931-45c6-b754-4ca73c30dbf8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_create [0.018774s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.070212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.019473s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.023446s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.021441s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.020337s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.016861s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.015719s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_admin [0.116456s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eb2051e7-5085-4bf7-82a5-b7e2d90dc909 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.016135s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.015218s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.562453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.022005s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected [0.016235s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.020656s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.031428s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_member [0.135517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b823fd53-3c9f-4ab3-a64b-b48c3bf94697 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.023169s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.017625s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.016072s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.021935s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.015692s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.015966s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.184774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.016483s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_get_observer [0.122230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-04acfa3b-02d3-4e96-84cb-4795ec63777f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.021613s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.020985s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.014958s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.015123s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.015153s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.015431s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.019335s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.016120s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.158153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.023022s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.015696s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.015122s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.172773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/ed70e456-4bdc-4b6c-bffc-75be8e6d4d39 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-650eb4f2-f432-4cfd-ac79-79df4ab64f1d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.017091s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.569248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.016665s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.015815s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.018585s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.017197s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.016324s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.144113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.017099s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.016559s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.017071s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.140087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.015924s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.162826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/79b07552-d96b-49ac-ba0f-f41390958c7c WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43fe281c-07cc-4c0c-8914-7528ed9c6685 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.021193s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.027029s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.017734s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.123760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAnsibleDeploy.test_tear_down [0.090577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.017804s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.019101s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.019065s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.023622s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.132873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/6e26c600-7895-4ea9-b2d9-bd2af65a724b WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-292044c3-2171-4741-83f4-dc6194c19d9f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.082833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.026709s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.107896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.017881s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.068107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.078296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.113431s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/3c90304a-3108-49f4-a21d-b85d88172e47 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d0b9cb7a-0488-4df2-9d81-0de11ee1ca8b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.066316s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.041999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAnsibleDeploy.test_tear_down_cleaning [0.093124s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.041584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.104116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0e4f7d2b-1f41-4c38-bf1e-7dbeaea539ee WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9e87321e-264e-469b-8b1f-00f9f67c5183 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.038628s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.066471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.068805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/2f94d1d7-825c-4a31-8ed0-e1af96e5bc7b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b4c05a6e-3149-47c1-b0e7-e2c1eec82013 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.054148s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.048928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.304596s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [0.043084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.069891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/abf3d743-670e-4e5d-b740-859ff4a8d4c5 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-68d5cb83-87c4-4776-a54e-45689b5e5740 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.068027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/f6c644a6-63a1-4875-b15d-2d1cdb3962ad GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cb4b77db-0c29-44b9-b976-7bbac2c8bcc4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.115285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.033753s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.049919s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.031251s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.055855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.048961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.039878s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.038623s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.067806s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/1e22b3a4-9afb-43e1-bb54-0edffdb1e7c0 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-41f65a7e-5cff-40a8-88db-b0b95463556e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.032915s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.053583s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.099722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.044995s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.041403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.031573s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.038842s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_admin [0.131034s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-262d1a52-8c4b-48ec-a31a-a0ce1d37b92c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.076200s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.037869s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.036063s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.059758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.034588s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_member [0.091111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f58ec2a1-964d-4e7c-a8ed-fe48681c733b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.038517s] ... ok 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.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.087979s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.040278s] ... ok {0} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.037661s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_post_observer [0.056891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1228a266-e133-450d-a986-0c1dc63b4162 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.objects.test_objects.TestObject.test_refresh_object [0.032190s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.072431s] ... ok 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_allocations.AllocationsTestCase.test_create [0.053990s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.041121s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.043741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.033184s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.039758s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.040267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_admin [0.105065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3999d983-cc6c-4b28-ab5f-3e4d5e23c7a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.objects.test_objects.TestObject.test_unknown_objtype [0.027073s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.043547s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.051853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.043982s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_member [0.053556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-91ee5484-8a60-41e4-b921-1799dfac14ee X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.033611s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.049286s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.075608s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.029083s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_get_observer [0.065400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bd43cfcf-a021-4683-b159-6dc7ed748189 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.037569s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.028939s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.041399s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.022725s] ... ok {1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.045137s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_admin [0.076365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3eac745d-276e-4400-9c2f-5883d9b3f174 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.041334s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.057373s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.037498s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.023658s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.020000s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.021003s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.035662s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.018524s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.069792s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.036966s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_member [0.109879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-45e60bb0-1ad8-4444-8587-e75ee48bf0f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.037247s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.034854s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.027980s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.075863s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.022209s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.018754s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.022200s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.018135s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.017786s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.022878s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.046842s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.021299s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.025434s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing [0.026863s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_detail_get_observer [0.149802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4aebed2a-a013-415b-8c3a-e781e94ea820 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.027912s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.019109s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.048627s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.030313s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.029021s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove [0.018546s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.027438s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.055989s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.018974s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.025935s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.018778s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.053263s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.035379s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.123600s] ... 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-2ed4392b-0e2e-4c9f-8381-0e7c080ccefa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.029189s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.029794s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.040339s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.019986s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.064848s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_member [0.069040s] ... 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-0cc40860-9a57-4b2a-9d84-725ebe09dbeb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.019387s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.020339s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.060709s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.026699s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.057590s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.063122s] ... 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-5764572c-bf92-4a67-983f-295ce0d5ec1f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.049329s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.028861s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.041832s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.025323s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.037995s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.064331s] ... 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-845787ad-6042-430c-acb8-ead94e918e1a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.044922s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.037850s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.047349s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.025581s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.049933s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.046328s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.055572s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.041527s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.030422s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.033770s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.052056s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.039329s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.039984s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.026246s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.050005s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.034866s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.033994s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_ilo6_redirect [0.072352s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.064603s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.280547s] ... 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-27ab8704-5e7b-4b3e-a60b-6a2fecd95761 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.db.test_allocations.AllocationsTestCase.test_update_allocation [0.038045s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.034963s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.032144s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.020867s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.087487s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.017950s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.075323s] ... 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-c2564844-c0ed-4a56-9a9a-a70f9e4235f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.020689s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.020039s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.068231s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.063428s] ... 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-d715f052-07b8-4f05-a5cf-e5c57c3c6b30 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.041513s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.037508s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.019241s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.025289s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.020049s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.018624s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.068427s] ... 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-00e60028-b544-4fe5-8aee-9c228ff858a4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.041523s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.019156s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.036092s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.031257s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.025893s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.018975s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.063026s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.018714s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.118972s] ... 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-1ba912a5-fda5-4fd3-a72e-528e5903434f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.016553s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.016552s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.021014s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.068912s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.017003s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.016344s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.016998s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.015485s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.070474s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.017829s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_admin [0.140703s] ... 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-82e9e1c1-ebf0-4e26-9c85-e8ddc35608d5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.016709s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.016440s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.040085s] ... ok {1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.022563s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.037729s] ... ok {1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.029986s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.029931s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_member [0.098029s] ... 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-9ce9e77d-9853-4417-876b-75f4d8e2074f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.030753s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.028945s] ... ok {1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.035958s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.026225s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_observer [0.060014s] ... 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-35da2b0e-7a44-4aaf-9bde-78c59dd7a32c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.031819s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.021621s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.021535s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.022370s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_admin [0.102145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/eed63703-603b-49ca-8962-df54ca4aa27a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e7555c46-a2d7-4d54-9dda-abc7ab53dfa2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.025396s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.025107s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.025411s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_member [0.062734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e780fe3a-ddda-4318-bc7c-b6d76a82fde0 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a2bfb4f3-0bfd-4363-93f2-0982bea00640 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.030493s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.022984s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_306_node_history_get_entry_observer [0.059171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3d4d130a-f0ff-493c-856f-c115f3a64097 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4886793-b6d1-4fb8-a9f9-f4daf853ff0b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.031760s] ... ok {1} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.273467s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.023076s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.027658s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.026258s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.021880s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.093023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-be8023e1-e647-44aa-a47f-c0f3d41f16cd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.024602s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.021178s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member [0.086599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5726fe26-9211-4ff7-ad58-0d662f69c1a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.090731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-589674b2-aeb1-44ed-812c-59f5126d41a0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.059559s] ... 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-1d9bfd8f-6f6e-4a4c-b814-0d520babcdc6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_offline [0.227827s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.024808s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.057941s] ... 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-356c3b5f-864a-4c19-8c43-82b405273659 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.027607s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.024644s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.058633s] ... 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-210a7197-c35e-4f91-bc32-5723dd9d220e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.036676s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.024806s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.059151s] ... 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-d13482b3-6001-4da5-b288-f6dcfe1be755 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.021731s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.030360s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.031892s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.065694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-12772763-6243-4551-87c7-cc1a64e90fd7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.025724s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.021556s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.020991s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.058815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8cea3970-68f1-4afb-a74e-f820516186dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"nodes": []} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.022901s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.022655s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.064074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f2199305-3ce9-4108-8d8d-e220a9576339 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.029851s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.028437s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.054906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-39fa0a04-ede1-40bd-9585-78b0600cfa6c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.022513s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.038607s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.051580s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-481f06c8-0472-432f-94d3-c238a701c96c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.049400s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.056794s] ... 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-29f4cb24-449f-4db0-b9a9-fac28245b610 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.039887s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.024447s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.058469s] ... 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-e91fc8b1-8096-4f9b-b3ab-cb70b15095bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.031575s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.058945s] ... 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-cdd7b6c5-8243-43ec-bb4e-58a6408e7039 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.042885s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.033853s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.057878s] ... 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-30e86844-2f7a-425b-8ac4-2800ba96ba13 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.034811s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.030725s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.059006s] ... 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-a98632ea-c925-4c50-b891-9f3f0cfaa27d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.039235s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.059329s] ... 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-c2d61c7b-3499-4d4b-9870-9ad826bd1768 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.034365s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.020079s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.038949s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.075937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ed6e8a33-77b6-48ff-b9e3-a969bdfbf06f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.104054s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.075031s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.104986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d924720-b288-449e-8f35-10fa499ba31f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.060255s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.072644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-69f663ac-af49-48cf-b6d3-9e974e022037 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.050104s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.050845s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.071237s] ... 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-d4038bfb-24a0-4fa7-b1de-c4faa4b8f5a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.061757s] ... 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-9395fc67-fcfc-4a3f-9ff1-705b7072f6c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.090487s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.027687s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.064902s] ... 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-81e45356-fcd4-4c70-a749-266a20ee6cef X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.064728s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.063975s] ... 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-565a690e-fbb2-47d6-8433-3bad53244e73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.026028s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.028298s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.027574s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.063750s] ... 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-514216cc-68ef-4a79-bd3a-d9c8edef5272 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.025631s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.032984s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.061145s] ... 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-9b88f92e-1527-478f-a292-92ae27630716 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.026997s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.038965s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.027145s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.083499s] ... 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-22c23e5b-51e8-455c-b099-4274bb91d7f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count [0.030092s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.025579s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.057373s] ... 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-70ceb15c-ebc5-48ca-8319-8ae811093b83 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.030138s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.065854s] ... 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-3a298353-8049-4648-b9f8-2f96a7f51758 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.057390s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.024637s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.025834s] ... ok 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_nodes.DbNodeTestCase.test_reservation_after_release [0.028576s] ... ok 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_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.055500s] ... ok 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_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.028627s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.030907s] ... ok 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_nodes.DbNodeTestCase.test_reserve_node [0.036039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.051988s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.058643s] ... ok 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_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_twice [0.049330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.079143s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.403892s] ... 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-43b4743b-b67b-4400-9631-afefe31e7497 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.066285s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.077183s] ... 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-69dd5e65-b5da-4d3e-ae21-2779f1606f25 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.069794s] ... 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-0cfec1ab-af4d-47de-9ec3-6503532a7a1c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.056620s] ... 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-14dcedf5-0465-4e0c-9ec0-c2c584b883fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.076227s] ... 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-24f6990f-d5ac-437e-842a-d29ee26226ce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.059973s] ... 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-1722e716-1668-4337-95a3-7a35a27f7994 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.080031s] ... 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-65a61f31-86c4-4291-893c-63fbfcc4c2f2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.072724s] ... 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-94eb5550-d938-4658-8857-e1443a8ded13 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.078061s] ... 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-4214da3a-c1c6-4c49-88a4-bbb39e6660b9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.598841s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.081625s] ... 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-502e259b-f61c-4efa-a063-298d3f346229 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.066771s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.022781s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.061067s] ... 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-4c58964a-6fec-482b-b8a9-0ea1dd63f149 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.032246s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.058001s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.058177s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.127408s] ... 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-1f39833f-f96f-449b-aa1d-013e87e1cab1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.076883s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.077351s] ... 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-10372b87-af01-4058-af71-a29027cb7502 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.079538s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.073513s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.058442s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.025690s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.028420s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.196716s] ... 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-4a93fe76-3f80-49f4-8657-9049c26869f0 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.118522s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspecting [0.025832s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.072177s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.045383s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.163320s] ... 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-5266f424-5863-4e8e-a8ae-fb4d26ab5761 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.032809s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.047193s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.022288s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.093547s] ... 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-193d3fd6-13b2-4732-8978-be0463bc202c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.025599s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.078892s] ... 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-156dad15-969a-4de7-a750-66e25a7ca4db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.074474s] ... 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-7b1adbd4-ccc4-4642-9612-705021c35b71 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.070980s] ... 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-60027790-2517-42e3-be6f-7f5fca33bb35 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.077982s] ... 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-af53b83b-98ef-4846-aa52-f28b9f18016d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.080755s] ... 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-dc371b88-6572-4e34-953f-9cc42124b8aa X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.068869s] ... 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-81749218-f3d7-4de2-b89f-081e33fde429 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.067511s] ... 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-0385c74b-2a80-4590-9271-29b80da648a2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.070823s] ... 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-22579c71-3a49-4a67-95c9-4bf91cc0f3d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.070756s] ... 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-a42a2085-0ae1-4899-be9a-4f2f1ef01eb1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.081585s] ... 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-f46a192e-686d-4541-82c9-54a9e480cce2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.084972s] ... 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-0492f074-c812-4e05-bcc8-2cd0bc124dd2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.060860s] ... 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-fbf50b06-9cc8-4995-aa4c-1d7a34ea9526 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.058634s] ... 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-8dc626d4-8b08-4608-946b-3d596d780381 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.059340s] ... 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-0db85db0-9c91-4f27-91b8-0a6c394a4b46 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.061174s] ... 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-afe3098a-0f3d-4513-af4d-c6ce0cbd653e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.061687s] ... 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-56704090-4a45-4b81-a1c0-4d741ba029c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_get_observer [0.063733s] ... 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-2c5f2bd1-8b26-46bb-8115-63af98b825c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_admin [0.065589s] ... 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-170a7647-ebb4-499a-a8fa-5b95535cedd8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_member [0.058157s] ... 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-e457cb46-6d2d-41e4-8875-b8e63986d86a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries [1.385636s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_states_console_put_observer [0.064117s] ... 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-0ab7ef54-8820-4b93-845f-36fe5ca6e1bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_admin [0.063276s] ... 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-a7824d3c-b9ec-438d-98e7-9af0746d3f58 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_member [0.074159s] ... 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-b8b203d4-8c97-4c46-8708-5b2be23aeac3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_methods_get_observer [0.059255s] ... 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-fbf074e7-7f44-4a62-b93a-6816ad598d92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_admin [0.077339s] ... 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-7220d176-ed0e-464b-8505-2076df666abd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_member [0.078481s] ... 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-d808af3d-3b16-449b-b927-f837c180fe44 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_get_observer [0.063931s] ... 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-3e4cb0ee-7839-49e9-8cc9-114ed3b628e5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.086492s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_admin [0.100140s] ... 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-a62f70a5-3e2b-4025-aa2a-df62e7a816c3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_member [0.071174s] ... 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-6a8a0d2c-edd6-4db4-aeb3-422296dead3c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_post_observer [0.064369s] ... 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-ded41e3b-4469-41d1-8986-c1d570534145 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_admin [0.054297s] ... 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-3bfd41b0-5c29-4c44-9654-b59460003412 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries_without_log_mock [0.748476s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_member [0.055548s] ... 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-2cf53f17-c1ce-4c28-94b5-8de7d00088f3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.033732s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.046493s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.035673s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.064285s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.034756s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.032953s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.035001s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_put_observer [0.287139s] ... 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-29e63934-735c-480b-9e7e-4a52446089f1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.029604s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.030424s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.023391s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_admin [0.060885s] ... 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-f9eb162e-1181-42ef-85d7-dff5f9e05274 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.048030s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.026099s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_member [0.095086s] ... 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-2984bfac-a206-4c2c-bf89-4e30b2d78db6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.033503s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.034282s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_vendor_passthru_delete_observer [0.058140s] ... 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-a03db252-c06e-4fac-a6f0-9f455db33a95 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.044766s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_admin [0.073715s] ... 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-4fc7c343-a7a5-4ddc-82e8-2f223780126b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgoups_by_conductor_groups [0.080038s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.049316s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_member [0.097464s] ... 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-b96a4eda-9645-4508-a961-9d5fe093399c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.065985s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_get_observer [0.072703s] ... 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-b691ef58-eb96-473d-9c35-1c391495b0c1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.031020s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.022906s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.029492s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_admin [0.074400s] ... 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-4ef1e05f-91e9-4f7a-bed4-91a6bce1f436 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.032572s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.035491s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_member [0.079281s] ... 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-2a4cbec6-18cc-41fd-99bd-284ec36123e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.025638s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.032198s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_put_observer [0.073845s] ... 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-f5664c35-9616-458b-a945-e7f8085ce31a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.038318s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.035680s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.023719s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_admin [0.063975s] ... 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-fcca3698-4ab6-458e-8e17-d9a7bdf710c2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.039194s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.029979s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_member [0.070212s] ... 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-36909a40-b9b9-46f0-a29e-0dd7ea8ae4c7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.028523s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.023544s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_delete_observer [0.063179s] ... 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-39637691-ebd1-4485-85fd-e1036eec6fd6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.027179s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.023155s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_admin [0.070811s] ... 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-314be73d-0021-4f38-8a24-623f6a898c1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.054648s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_member [0.065327s] ... 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-c3efcabb-f10e-426b-a21f-bfaa8366cac1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.051563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_put_observer [0.070287s] ... 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-3467d258-7a4b-41be-9d38-4727acf097c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.079340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_admin [0.060376s] ... 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-a6167c38-a7a3-4a8d-b2f8-894a13c721dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.049165s] ... ok 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.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.044954s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_member [0.086398s] ... 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-f3f45200-fc01-414b-bbf3-238bf7e23b09 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.071853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_traits_trait_delete_observer [0.065932s] ... 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-66769e32-86fb-495e-99fe-851c4a3bc249 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.084870s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_admin [0.072870s] ... 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-b84ea21e-697d-4b10-900f-40eb5198edb1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.054759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_member [0.085533s] ... 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-007f0f45-7eeb-4f54-b843-07bc9163f75e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.063577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_get_observer [0.071850s] ... 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-ca7190e2-3148-49b9-bde7-8d0e5ac4f05f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.081297s] ... ok 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.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.042075s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_admin [0.079799s] ... 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-08c819e2-4f96-44da-9670-4decc0a598f5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.025211s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_member [0.082548s] ... 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-c4bfa594-2f1b-45d5-b360-7f0bf799be91 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_post_observer [0.134934s] ... 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-fd463528-dbbb-4ccb-bce4-d19a5316ed01 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_admin [0.068684s] ... 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-74d7776d-d338-4000-9c0e-0a6adadef61d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.287301s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.028427s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.026407s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_member [0.072359s] ... 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-2710fdb7-a057-4c4b-ad51-5768328bcfff X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.024462s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.022351s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.022183s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_vifs_node_vif_ident_delete_observer [0.083214s] ... 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-055cf256-d3df-4a65-b21b-764b6560ccda X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.043344s] ... ok 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.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.063481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_admin [0.079972s] ... 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-c0e14ea9-89d2-41f7-9ac2-25ee58f737bf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.044224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_member [0.079873s] ... 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-89e67d4f-567a-43c9-8613-6dd23c965eaf X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.047569s] ... ok 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.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.026594s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.033562s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_get_observer [0.117605s] ... 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-471412a5-3559-4646-9904-494dd80e7902 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration [0.052263s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.044134s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.066535s] ... ok {3} 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. {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.100332s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.082569s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.044726s] ... ok {3} 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.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.050165s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.051339s] ... ok {3} 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. {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.040947s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_admin [0.093305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4104294f-32b2-4d2f-8e8b-5fbee4fe053d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.084103s] ... ok 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_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.051282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_member [0.092422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0296da65-a6f7-4fde-825a-e3b5cacc418e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.064703s] ... ok 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_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.049082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_get_observer [0.086049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2fc739eb-efee-4459-8d07-5f74b14f8f11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.056749s] ... ok 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_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.050365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_admin [0.096952s] ... 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-e1a7f9db-d962-44ea-b65a-5f933b6ad9c6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.068968s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_member [0.095119s] ... 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-c2f689be-ce68-4d67-8b32-c4009b60641f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.051445s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_post_observer [0.063437s] ... 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-0208e0ff-fac2-41b2-b808-45d2be97f1bc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.056597s] ... ok 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_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.041784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_admin [0.065540s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4a5a215d-7637-4b48-8aa2-e6389935d6da X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.040143s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_member [0.058927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-51babebf-0385-4a23-aa6f-bb11fc389b38 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.050826s] ... ok 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_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.044933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_detail_get_observer [0.073721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-62752e2e-02d7-4a34-b663-ea1537efad11 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.037254s] ... ok 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_certificate_file_list [0.022169s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_admin [0.062200s] ... 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-3b14ff5c-e069-4325-8eaa-e234edcd3080 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.027857s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.027312s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.027703s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.022731s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.026177s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.054951s] ... ok 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.044832s] ... ok 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.072679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_member [0.384954s] ... 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-b0618c3a-e845-4774-b1e6-23151524c460 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false [0.109914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_get_observer [0.072927s] ... 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-8660157a-fa27-4072-b534-5fe9f3a199fd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.091270s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_admin [0.062956s] ... 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-66d9a601-6af5-440a-83d8-6060ca84cbfe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.063512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_member [0.077621s] ... 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-8cb8456e-beab-492b-bc50-176a1fb31761 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true [0.042679s] ... ok 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_default [0.066262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_patch_observer [0.106904s] ... 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-af158e68-a9eb-4539-9411-70b74479eca5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.026630s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.026955s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.059098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_admin [0.099638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-965cde82-5aa3-4f6a-987a-a4b9f047ea4a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.060622s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_member [0.064129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-493efb27-4b7e-430b-a27c-cc833bd4d827 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.060527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_130_portgroups_portgroup_ident_delete_observer [0.087867s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cbc9f07b-feca-44d4-a60c-7d8763e07233 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.047019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_admin [0.060785s] ... 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-8dd662b1-04da-4e30-bf1f-7bee8c4b6d5d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_clear_certificates [0.069284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_member [0.068695s] ... 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-14ddee1a-8a96-466e-87ff-d097cd0b9b60 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_clear_certificates_default [0.044030s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_get_observer [0.055286s] ... 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-4a097dbf-baeb-42de-8f64-a982b67c2558 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_clear_certificates_raises_ilo_error [0.052216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_admin [0.095876s] ... 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-e6250673-a601-4ba1-a2ed-cfef390bd317 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_member [0.085190s] ... 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-dc4fd87d-2988-4ace-9e1e-c77bb22e8780 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_nodes_portgroups_detail_get_observer [0.056633s] ... 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-da54ba54-831e-4e01-85cc-83f2b6c474c5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_admin [0.058352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-019d5899-0927-4a9b-8611-4a81864939d7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_member [0.062820s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40a40396-5633-47a7-8a9d-ae8707ae5245 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_get_observer [0.055234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-858b7775-e6cf-4e04-a86b-44062c64d8b4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_admin [0.071344s] ... 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-7ac4cd24-3bdd-4725-9f09-b6b96f63fbd3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.511907s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_member [0.074188s] ... 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-d5137ac6-7337-426e-b924-3b1a66ab98b7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.067196s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.026817s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.062070s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_post_observer [0.176073s] ... 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-59ce732d-0c89-49a4-a0cf-9b5d40936f7d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.074779s] ... ok 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.055615s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_admin [0.076260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2ea6e286-b6f6-4dbe-92af-3ebe855a8d4a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_member [0.053197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9f361e7c-c2f8-4761-a948-2fe419b3da4c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_detail_get_observer [0.066737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2afa6a53-7367-4ab9-9168-e72b429baf92 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url [0.144573s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_admin [0.059064s] ... 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-555ff02a-6357-4b51-b94a-0456af244823 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.065676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_member [0.061084s] ... 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-ea909212-8c80-4b9e-8719-6ea448bd89db X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_get_observer [0.058287s] ... 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-682271d8-6e41-4d3d-ad4f-b1be7f45cc99 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.097845s] ... ok 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.031835s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_admin [0.065046s] ... 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-835fc477-3ba2-465e-a2af-3ecc8d886135 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.034057s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.031016s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_member [0.067906s] ... 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-162b53ec-84f3-4b99-af5b-a162f3d4d08e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.051021s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.027966s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_patch_observer [0.074459s] ... 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-764234ba-140f-4d1c-a952-82dadd6b476d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.047682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_admin [0.064755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-84e9bd34-6e37-4971-a855-c960cb5af17a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.064636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_member [0.063395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9db2299c-83cd-4d5f-a8d9-e7e04a70907a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.063158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_154_ports_port_id_delete_observer [0.057661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-93e398bb-cbc5-41f6-9096-13921f89eddc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.051144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_admin [0.060513s] ... 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-a169a584-b47e-4d07-9907-cda5616dfa2f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_get_server_post_state [0.078274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_member [0.057735s] ... 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-49386e74-c6c5-40bd-bf4d-3dbe8ba5d8d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_get_observer [0.065697s] ... 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-b34c8f64-994f-49bf-beea-f046c0154fe5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_get_server_post_state_fail [0.072826s] ... ok 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.044719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_admin [0.072034s] ... 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-127e2613-a480-4dc4-a3e2-4dd4663b90f4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_remove_image_from_swift [0.031604s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.045644s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_member [0.063275s] ... 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-a1f14146-749d-4392-b42a-ed5be5b97272 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_remove_image_from_swift_suppresses_operror_exc [0.055257s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_nodes_ports_detail_get_observer [0.062776s] ... 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-592f1a52-58a6-4fa8-9e9a-55083e9ce41e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_remove_image_from_web_server [0.044994s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_admin [0.067221s] ... 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-0afd80cb-166e-46e0-9010-e9d6e39d3e0a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.089059s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.031994s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_member [0.073284s] ... 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-93c44218-cf7d-4066-a1de-9887abeb5dea X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.081937s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.037814s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_get_observer [0.072799s] ... 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-3104df0c-fb4d-4570-9fef-02388834c520 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.036206s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.025002s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.036329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_admin [0.105643s] ... 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-90f1dd05-0ecb-4205-b196-efe4a1c5461b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.038378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_member [0.066311s] ... 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-365869ae-abb4-4dd2-a0ed-637ca56f5252 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.055992s] ... ok 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.038398s] ... ok 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_true [0.037520s] ... ok 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.041538s] ... ok 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_not_supported [0.038227s] ... ok 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.051654s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_166_portgroups_ports_detail_get_observer [0.273084s] ... 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-98077dc7-dab0-4bb9-9a7a-8bc15fdcbfec X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.042022s] ... ok 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_parameters [0.038913s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_admin [0.052479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c4d4d98f-6ad5-41c8-be5d-0f08aeacf5f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.060190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_member [0.066946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-00be73e6-5e7b-48c2-a375-d7a8f52e1f2e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.041096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_169_volume_get_observer [0.067423s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-262551ef-8395-49bc-b50e-5b867b57d72b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.042437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_admin [0.056840s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-31ed7711-15c0-4f0e-ab04-8b3cdb8a149b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.051801s] ... ok 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.039049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_member [0.056268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4353030e-c806-419f-9ca8-3d625f230702 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.039282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_get_observer [0.056497s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8b9717ca-9198-4fc9-8e65-26f9b3ba5f48 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.049491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_admin [0.058649s] ... 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-6b1761bf-9f9c-4847-868f-a174f78aae7b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.040975s] ... ok 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.047353s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_member [0.084689s] ... 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-e601dbd8-3d65-4685-b518-7eef2c1eb729 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.050409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_175_volume_connectors_post_observer [0.072698s] ... 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-78ee41d7-ac33-4796-8b4a-9af7ecb6a6d6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.046333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_admin [0.059193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/ea34e52c-9f37-430a-ae7d-f46a7fef2802 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-39aaaa3c-7334-44f6-a3e9-6a262aee612e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ea34e52c-9f37-430a-ae7d-f46a7fef2802 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_member [0.072781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/6c2a507e-9b79-4c62-9d00-aaa5e74f5666 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6009d9f6-b745-4089-9a87-5f0dec5e6556 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 6c2a507e-9b79-4c62-9d00-aaa5e74f5666 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_get_observer [0.077896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/183daa01-16dc-4b59-85ca-1eab0eb6797a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ecff38b5-3805-411e-9044-00964120a9c9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 183daa01-16dc-4b59-85ca-1eab0eb6797a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_admin [0.098978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/74a1801f-5923-4f59-b0cd-d5fc4c5c17f5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e216930c-0549-4fc4-9924-d382176a5c47 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 74a1801f-5923-4f59-b0cd-d5fc4c5c17f5 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.392133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_member [0.115550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/0be45c32-b1ad-4144-a0b9-60f4e7dd4441 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-027e8b6e-7170-406f-a029-ce3e7842dd7e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 0be45c32-b1ad-4144-a0b9-60f4e7dd4441 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.047139s] ... ok 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.024172s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.021600s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_patch_observer [0.083724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/df55ae1f-72a1-462a-91fa-1716d614688b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-09e5c346-fe52-42ef-9104-4829e519badb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector df55ae1f-72a1-462a-91fa-1716d614688b could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.027285s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_admin [0.072208s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/26247996-8543-4aac-bdd4-272abaf8baeb GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c43f93fd-2e5a-4615-a64a-a365fba0b2cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 26247996-8543-4aac-bdd4-272abaf8baeb could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.060265s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.048477s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_member [0.089385s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/42620879-3acd-441b-928a-cde974465c17 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cf176d45-7447-433e-a24d-6827673658f7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 42620879-3acd-441b-928a-cde974465c17 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [0.046291s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.024379s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_volume_connector_id_delete_observer [0.059074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/ce283682-9571-470a-b830-0661d20925dc GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c1669a30-6759-4a89-b968-7eb6172fb664 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ce283682-9571-470a-b830-0661d20925dc could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.031093s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.025307s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.019998s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_admin [0.076735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-61ff08a1-b639-4ec2-8230-c3658ade8d9e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.029455s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.017613s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_member [0.060107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3e2b65f4-cddd-4ed4-9ac0-871f1d4342dd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.051594s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_get_observer [0.065732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-46dc69ae-97e7-4777-8e17-5528862b1920 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.108463s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.111798s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_admin [0.085905s] ... 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-789346b0-f0ab-4dc8-898b-b1bd13636b1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.020629s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.033802s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_member [0.077053s] ... 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-88ed3156-c93e-40f3-83d0-8da889ef5d37 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.031442s] ... ok {0} 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.032378s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.029696s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_targets_post_observer [0.070110s] ... 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-59345204-1111-408d-989c-526460a73241 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.044178s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_admin [0.078589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/e0f1f556-b373-4e59-a79d-fab304784b0e WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2ec6626-472e-43db-8e4e-4c1c96c24b68 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e0f1f556-b373-4e59-a79d-fab304784b0e could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.050243s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_member [0.062737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/45a840ad-9c41-4d96-a6cf-5d873cbfc0ac WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8b824f2f-a4e6-40fa-ae90-b898e84b5450 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 45a840ad-9c41-4d96-a6cf-5d873cbfc0ac could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.061483s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.030323s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_get_observer [0.086662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/8fb750e1-26ca-4b2b-b918-cca8d5778194 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-44f75f71-26fb-4f66-8c6d-dcb4052c9c16 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 8fb750e1-26ca-4b2b-b918-cca8d5778194 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.058979s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.033214s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.019186s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_admin [0.075301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/22a8f834-5650-4ebd-af4f-bfd703e7ceae WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b85ae778-98e3-4147-ba77-e26e1fe6d9e4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 22a8f834-5650-4ebd-af4f-bfd703e7ceae could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.034040s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.021713s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.018996s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_member [0.080453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1cb248da-6cbb-4132-b6f9-009c76b8fb08 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f8ec61b5-33c0-409b-b8cd-e894b6467ece X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1cb248da-6cbb-4132-b6f9-009c76b8fb08 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.017867s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.015661s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_patch_observer [0.062693s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/792f4ae7-b318-490f-bd81-31d1715284b0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-65677563-3200-43e1-beed-6601a570369a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 792f4ae7-b318-490f-bd81-31d1715284b0 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.046857s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_admin [0.064218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/a07af61e-f696-421c-8cd5-5c0130cb09f1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-50800ba4-44ce-41c2-8075-f5a09e5cb8b8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a07af61e-f696-421c-8cd5-5c0130cb09f1 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_member [0.066547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/415b110e-57f1-4968-a120-5b63bcb9ab8e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e203de0a-533c-4466-9e7a-8b1c5c2c1113 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 415b110e-57f1-4968-a120-5b63bcb9ab8e could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_volume_volume_target_id_delete_observer [0.064897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/90894d48-fa66-4047-96d0-d43a8d657713 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-305d51fc-39d4-41d0-89ab-17c48e32ee4b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 90894d48-fa66-4047-96d0-d43a8d657713 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_admin [0.073193s] ... 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-c7ceef53-afcc-40c1-bcf0-416e711a62bb X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_member [0.063538s] ... 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-70191155-5253-4227-85ac-e8356f4faf97 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.074109s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_get_observer [0.071343s] ... 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-1f50740c-bbb6-48f2-ad81-7c90cc8dfe27 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_admin [0.076852s] ... 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-96edadd8-6e3f-46f6-8762-451c039dff4f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.496081s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.018027s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.022297s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.020217s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_member [0.094676s] ... 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-30d29d9d-a4c2-4da1-a177-b5465fb1df1e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.020675s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_connectors_get_observer [0.069693s] ... 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-6544c4ff-18d7-434b-bdc3-f0c8ed844d3b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.077779s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_admin [0.074311s] ... 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-381c9b70-024e-45a2-ba8f-36df5af416a7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.098650s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_member [0.070498s] ... 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-87ac591b-3d12-4213-8c36-279e491c4102 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.080385s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.071013s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.017873s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.017494s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates [0.056575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_208_nodes_volume_targets_get_observer [0.263003s] ... 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-8b1f7a48-8d66-4f15-86bb-dc6024d5af52 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.050456s] ... ok 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_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [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.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_admin [0.058146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3cb3b79b-fe36-4d50-9781-bee8bd8b5197 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.057189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_member [0.066814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a0852f31-827d-43f1-9c93-da2845801c42 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.057023s] ... ok 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_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.072744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_get_observer [0.126111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2676270b-9e57-4cac-a4f2-b74db3eb9dc1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.060753s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_admin [0.083730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6e2603b5-8373-4d34-b523-510197b93104 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.082015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_member [0.096035s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ffd45047-5b69-439f-99aa-1abba8e1d2b5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.044516s] ... ok 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_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.057557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_driver_name_get_observer [0.063678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fa23af41-e0bc-4c9e-87aa-e9819296b613 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.043271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_admin [0.064681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-13f6afa4-b9b9-46bf-a55d-cdddde9e39ac X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.054553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_member [0.075874s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-dc9dfb4d-c5fb-4f82-87ce-3f658d8e29cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_properties_get_observer [0.058867s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8b3dc244-a5ce-4c39-bb69-0ef110bdc5e6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_admin [0.087954s] ... 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-d65391eb-5d81-40a9-9329-13050f04ab32 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_member [0.059235s] ... 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-8e0bfbab-b700-414f-b842-e5e509b65606 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.333842s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_raid_logical_disk_properties_get_observer [0.129904s] ... 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-aa56577d-8fd6-4e06-86de-307f2d8807be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.041809s] ... ok 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_management.Ilo5ManagementTestCase.test_one_button_secure_erase [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( {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.042914s] ... ok 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_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.036412s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_admin [0.138732s] ... 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-a228fa62-ece1-4422-9c02-87f6aafca899 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.047647s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_member [0.080885s] ... 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-de4b36a3-60d5-4576-9e49-cb80dab745dc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.042644s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.034276s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_methods_get_observer [0.093411s] ... 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-092da1ea-2559-497e-a0c9-5992e37f7f15 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.066448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_admin [0.055954s] ... 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-8267d343-3810-41b5-97ae-c24b5386dc64 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.063943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_member [0.061598s] ... 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-ba148765-4fae-4a1f-98b6-033fd8cd2105 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.073362s] ... ok 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_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.052037s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_get_observer [0.113347s] ... 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-9fada2b2-8b2f-4fee-af36-34d60334d908 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.059020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_admin [0.072358s] ... 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-f8d4fab1-4039-4a68-909b-95220eb8f783 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.067233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_member [0.052747s] ... 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-98f6b3c3-ad21-44bf-8056-948dd0133111 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean [0.052636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_post_observer [0.056170s] ... 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-98efa6bc-ae0d-468b-b37b-5186f1add375 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.047805s] ... ok 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_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.045225s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_admin [0.080667s] ... 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-862c4257-a42d-401e-9c5d-a2fd177efb58 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.052350s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_member [0.055861s] ... 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-4fa3eb84-1345-42a0-9c4e-54c6ac659dd5 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_activate_license [0.053072s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_put_observer [0.058087s] ... 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-83df3486-e1b1-4cc3-96ee-f43a7168c657 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.064995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.066940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.063685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_admin [0.057448s] ... 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-41ff6131-7466-43d8-98eb-fc90327b4291 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_add_https_certificate_httpurl [0.061905s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_member [0.061502s] ... 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-0a9621f8-7d36-4c56-b8ee-6a50eae1ca43 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.056489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_get_observer [0.086270s] ... 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-e4de0c8d-946e-406e-88c4-fb2c8dca96fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.137832s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_admin [0.057639s] ... 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-bfeff747-434b-4a27-ba4b-e6332d1801a8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.092352s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_member [0.077069s] ... 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-3832515c-f8c8-4a90-b0ba-269296e0dc2b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.048987s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.130247s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_get_properties [0.035200s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_nodes_bios_bios_setting_get_observer [0.072051s] ... 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-57c65c00-9607-4332-a6be-23b495bd2632 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_admin [0.070094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8f5ab4ff-267b-4a00-8db5-b0ef9f8eab25 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.138661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_member [0.063921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ddca553-bf2d-47c2-82bd-e8bf600d1dbc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_clear_secure_boot_keys [0.066416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_get_observer [0.088760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e5a7b49b-fcec-490c-9aa8-81dd8742572c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_admin [0.082389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3f1dfda9-e73f-4b21-9c2b-1ee6918acbce X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_create_csr [0.114177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_member [0.069990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bf84752c-9868-43ef-a58a-5aeb48718b91 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component [0.102147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_246_conductors_hostname_get_observer [0.060834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7245c470-76cf-4224-bfb4-a96cf00e923d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_get_boot_device_fail [0.075680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_admin [0.087821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-550f483e-dfbc-4fd8-a668-4d8153d3e7af X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_get_boot_device_next_boot [0.086571s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.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. {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.630056s] ... ok 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_management.IloManagementTestCase.test_get_boot_device_persistent [0.050047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_reboot_no_timeout [0.068438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_post_observer [0.126511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4e2bc82-13d5-437d-9058-23a15f5c86d4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.089238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_reboot_with_timeout [0.054012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_set_power_state_no_timeout [0.036492s] ... ok 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_management.IloManagementTestCase.test_get_boot_mode [0.067883s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.051888s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.052210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_admin [0.149773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-79da4aca-ef2e-4f24-9ad9-5f07647959bd X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_get_properties [0.048815s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_validate [0.053083s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.037067s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.058496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_member [0.084388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6c60a08b-c870-4ce5-8832-acf9b8349ced X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_get_supported_boot_devices [0.071317s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.098196s] ... ok 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_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.064247s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_get_observer [0.128115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e454c71a-c65e-4bb3-8b7d-43137d086f5d X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.061792s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.136455s] ... ok 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_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.046357s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_admin [0.114543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/05f3e1f1-2313-4d94-b951-24e543e54441 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d4aa9208-93fa-4792-82cd-d4ad3e5e8b6b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 05f3e1f1-2313-4d94-b951-24e543e54441 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.062249s] ... ok 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_management.IloManagementTestCase.test_inject_nmi [0.053629s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_member [0.077492s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/014511bc-a992-406b-894e-0d5bf1bfff55 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-13e18726-9861-49d7-9642-6d33c585871b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 014511bc-a992-406b-894e-0d5bf1bfff55 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.076039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.084587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_get_observer [0.079114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/ed739255-fe1a-4b14-814f-eedb29eaf2d5 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-56c3796c-dd5c-4cd6-9725-221c55b82ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ed739255-fe1a-4b14-814f-eedb29eaf2d5 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.049191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.052015s] ... ok 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_management.IloManagementTestCase.test_reset_bios_to_default [0.044986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.075673s] ... ok 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_management.IloManagementTestCase.test_reset_ilo [0.058275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.057232s] ... ok 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_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.053353s] ... ok 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_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.057465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.088612s] ... ok 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_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.049448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.067726s] ... ok 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_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.056200s] ... ok 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_management.IloManagementTestCase.test_security_parameters_update [0.051207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_admin [0.396572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/5c309db2-473e-49ce-8a9e-33d71e79400d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0c54a76-602d-4663-97c7-144b6f0c2e75 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5c309db2-473e-49ce-8a9e-33d71e79400d could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.066127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.053232s] ... ok 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_management.IloManagementTestCase.test_set_boot_device_fail [0.082306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_member [0.105452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/f16c8cff-c59a-4aa9-93fe-b813b4521f11 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-99ae8844-7ca2-4f9f-b8cc-83d3664be766 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f16c8cff-c59a-4aa9-93fe-b813b4521f11 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.059707s] ... ok 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_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.076898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_patch_observer [0.059186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/0f4897e4-db86-4be1-8a40-fae549f9901e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f3ca1246-8e5e-4a1e-b44b-c2c148995d04 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0f4897e4-db86-4be1-8a40-fae549f9901e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.052460s] ... ok 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_management.IloManagementTestCase.test_set_boot_device_ok [0.053703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.061425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_admin [0.062748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/a7ad7b2e-eeec-4841-9762-6dff85570f6e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-92ba00fe-515e-4208-9ab6-8aa06d3c32e3 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a7ad7b2e-eeec-4841-9762-6dff85570f6e could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.059950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.046381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_member [0.066799s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/c557d70b-c24d-4517-bdc4-d2fce12537ae GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ba4a10de-1a8e-47b1-9347-6957274a5f58 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation c557d70b-c24d-4517-bdc4-d2fce12537ae could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.053175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.043214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_261_allocations_allocation_id_delete_observer [0.060430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/a49c4271-209b-4902-b4ef-3823f0896005 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b8b288db-0137-4bfb-a95c-62456f30ab93 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a49c4271-209b-4902-b4ef-3823f0896005 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.055949s] ... ok 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_management.IloManagementTestCase.test_set_boot_mode [0.071607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_admin [0.069948s] ... 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-a5f61641-4e63-4406-97b5-266a857a52d1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.071490s] ... ok 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_management.IloManagementTestCase.test_set_boot_mode_fail [0.074949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_member [0.075993s] ... 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-37aecea3-149e-48b5-ba92-8596e67c5bab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.059172s] ... ok 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_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.085240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_get_observer [0.073976s] ... 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-1069e55a-a6f4-4b16-9674-ee36c7665983 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.082741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_admin [0.061637s] ... 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-6e193cad-c6ec-40b2-91f4-6b526dc68a10 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.058458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_member [0.057975s] ... 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-f890be12-c882-432f-9dd2-053dd2a511c8 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.073693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_267_nodes_allocation_delete_observer [0.059998s] ... 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-314b2462-f485-43d7-9413-e20de72ad2d9 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.061109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_admin [0.060453s] ... 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-3a5b1030-30b3-44da-84a7-4cb02f6f97be X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.074539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_member [0.071739s] ... 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-56963b4b-c579-4c3d-a1e4-4ea72eae58f6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.043832s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.058099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_post_observer [0.097012s] ... 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-f73ce786-7723-4341-8656-5c1085d03d73 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.060954s] ... ok 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_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.498012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_admin [0.069948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0bc7263-c125-42e0-a2f5-b119e663e667 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.055840s] ... ok 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_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.080527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_member [0.072052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-226dddfe-f414-4205-bd13-7f24c3581775 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.061560s] ... ok 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_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.072431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_get_observer [0.063707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-967a94af-e0d9-4fb3-8131-8b218b43c9e7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.054370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot_mode.BootModeTestCase.test_boot_mode [0.048327s] ... ok 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_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.074625s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_admin [0.072871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/48b4b2cf-717f-4ec0-ba58-5c9ce188f8b2 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a7b2562a-4057-4bcc-947a-0ed110ee71fe X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.039498s] ... ok 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_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.044956s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_off [0.044303s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_member [0.071318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/bec04964-1ecc-46ce-894f-a0480836e960 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-97e3a540-618c-4497-a03c-1c43779b66ab X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.054961s] ... ok 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_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.091111s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_get_observer [0.070982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/29194c7b-e299-45eb-a90d-5d94075a64a2 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5dfe0528-d606-425b-8949-03986f9b98a6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_no_data_received [0.039326s] ... ok 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_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.066449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_admin [0.056268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/abd74805-e4b7-41f2-8fc7-b147b2288105 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2fae6009-bfa9-4d30-83bf-8d2276d0d9ca X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.046155s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.054116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_member [0.068923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/6c96776b-85d4-49ae-b34a-1f3e80b2357c WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eee3204c-5c4d-4664-b363-51bcce8a1aa4 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.090001s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.040023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_patch_observer [0.063791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b1cc2867-64b9-4fb9-8afc-4c41757048e5 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-129d4200-bd93-459b-aca3-d71e0f351023 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.080105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.069671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_admin [0.065925s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/2be7bb89-1ebf-477b-ba78-e23c0df0db2e GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-41199665-28b1-4e75-9190-401f265f0102 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.038612s] ... ok 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_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.077145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.040309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_member [0.055231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/1c0aadaf-e005-43c7-bdf4-25bf0fe19f45 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2f940f7-96a1-4d9d-8a6e-4ed8e2411f3f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.045995s] ... ok 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_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.067085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_282_deploy_templates_deploy_template_id_delete_observer [0.066729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/bbb14b6e-7e6a-4cff-8b0e-dbaec84904e7 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7116c17a-6a19-439e-960a-6a8c6e1fc224 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.058373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.072465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_admin [0.061502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cf5c74d1-e212-4a2e-b956-e3e253f1eb9c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.040294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_member [0.071438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-63a681a2-532e-4f6a-ba79-bc1da6516d03 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.097799s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_parse_lldp.ParseLLDPTestCase.test_null_strings [0.069788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_parse_lldp.ParseLLDPTestCase.test_old_format [0.051050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_post_observer [0.096075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2e46096f-f7d9-48fe-ac53-0a40d1ebafc6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.102932s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.039744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_admin [0.057229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a158414b-8069-49a6-b2f1-e3be20ee2c5b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.045868s] ... ok 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_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.067251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_member [0.055990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-914219b6-eaa1-4660-98d0-da078e890add X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.046879s] ... ok 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_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [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.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.045207s] ... ok 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_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.049873s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_get_observer [0.067108s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ced354cf-b1f0-471a-b39a-0dd16d8fd379 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.049169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_physical_network.PhysicalNetworkTestCase.test_physical_network [0.076488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_admin [0.063272s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8fb907b8-9f3f-40d2-badf-566af438dfd1 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.044763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_member [0.065937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0cb42d75-c8c9-4bb0-8de5-0592792d7241 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.057746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.084308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_detail_get_observer [0.055361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-371ac2b1-34a9-4f48-a7a5-d5a8468e235a X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_update_minimum_password_length [0.055998s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.075830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_admin [0.056894s] ... 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-c406dad8-1063-4249-82d9-0fb17df41d65 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_validate [0.045174s] ... ok 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_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean [0.055042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_member [0.075786s] ... 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-1403076b-a9a1-4f59-a6a8-eb01d8e13dba X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.051220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_get_observer [0.061638s] ... 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-8a730792-f872-4cd0-81f8-abf10e1a7005 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.066035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_admin [0.067025s] ... 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-ab4aafe4-a97f-4f07-8bc7-146470ef1f85 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.051010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_member [0.066649s] ... 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-b1cf342a-58d1-47eb-b917-f3b0bc2aba94 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_present [0.310450s] ... ok 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_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.063368s] ... ok 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_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy [0.047239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_patch_observer [0.073121s] ... 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-195ea6e4-5709-44bd-a7d3-42f9a9b7fea7 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.072297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_admin [0.056250s] ... 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-4acdccd3-2941-4f23-add0-582ba7c90e0c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.046332s] ... ok 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_accelerators.AcceleratorsTestCase.test_accelerators [0.079835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueInspectionTestCase.test_store_logs [0.052991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_member [0.069643s] ... 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-77de0a57-bc7e-4fd3-9cdb-fd2a20d7536e X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.060722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.InspectHardwareAbortTestCase.test_abort_error [0.028963s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.024546s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_chassis_chassis_id_delete_observer [0.070970s] ... 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-3cc21653-f90b-4fc8-a516-ad36b21b6b25 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"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}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_duplicates [0.077327s] ... ok 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_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.041929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.080851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_admin [0.069379s] ... 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-5e793b28-4e4c-43fb-89a0-bebb6770c7d2 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.027156s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.048123s] ... ok 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_agent.InspectHardwareTestCase.test_managed_disable_power_off [0.048188s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.059005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_member [0.093273s] ... 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-f8d13f35-e273-4485-8dfe-f13724eba15c X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_ok [0.050548s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.038043s] ... ok 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_agent.InspectHardwareTestCase.test_managed_unversion_url [0.055063s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_observer [0.073884s] ... 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-7f61d868-8008-4e2b-b292-79b92a6a286f X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.061911s] ... ok 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_agent.InspectHardwareTestCase.test_unmanaged_disable_power_off [0.063955s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.042023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_admin [0.070359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/55903de5-ce86-40ca-9382-7c4ef3fc34fc WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-70eb7c9a-5e9e-4d1a-8081-ebc93049e701 X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.026096s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.043046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_member [0.059494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/973b7b7f-08c9-4d06-8b80-3e712d604252 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-059c7959-d5e2-4ed0-85b5-0789de146a8b X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.088253s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.062803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.036773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_acl.TestRBACScoped.test_scoped_canary_306_node_history_get_entry_observer [0.087460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4997b814-e61e-4b23-b854-477003affb35 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5f130f6-66c0-4fc2-aa13-2c137cc559cc X-Openstack-Ironic-Api-Maximum-Version: 1.99 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.99 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.074910s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.036489s] ... ok 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_disable_power_off [0.060163s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.062891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.038938s] ... ok 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_error [0.058701s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.046364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.047683s] ... ok 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_fast_track [0.133765s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.050211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.286346s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.030640s] ... 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\": \"\"}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.038472s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_hooks.TestContextHook.test_context_hook_auth_token_info [0.041588s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.090361s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.070693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.058160s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.052582s] ... ok 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.098711s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.047690s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_hooks.TestContextHook.test_context_hook_not_admin [0.085485s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.027297s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.065836s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.023378s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.041427s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.028928s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.075176s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.027163s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_ok [0.040996s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.033460s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.030064s] ... ok {3} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.077026s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8c72a683-c1ec-4d11-aea6-d7e46bd1b7a7 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.030343s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.028010s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.032286s] ... ok {3} ironic.tests.unit.api.test_method.TestExpose.test_expose [0.057371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22975c01-a3e6-4eb7-9906-305cbf3388e9 {"foo": true} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.024010s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.073453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_driver_info [0.027779s] ... ok {3} ironic.tests.unit.api.test_method.TestExpose.test_expose_validation [0.055795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98ba649c-723d-4e5e-bdbc-9300572902e8 {"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}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.031400s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.089488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_invalid [0.051462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_method.TestExpose.test_post_body [0.064702s] ... 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-62b537c9-4573-41bf-9ff6-d83af7a5b010 {"three": "three", "four": "four", "five": "five"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.028387s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.023845s] ... ok {3} ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation [0.058906s] ... 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-b685877e-de6d-4daa-aa93-e33702c20c55 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.022214s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.083074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_method.TestExpose.test_response_204 [0.026170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/no_content WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-dfb1a1b8-9295-433c-8317-d17391d16163 {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.023665s] ... ok {3} ironic.tests.unit.api.test_method.TestExpose.test_response_content [0.025963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_content WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a90d4f4-4efe-4160-8065-36697e70f28f "nothing" {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.033588s] ... ok {3} ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status [0.029443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-89a0a4a1-7379-4133-a061-078cce397476 "accepted" {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.078731s] ... ok 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.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.023567s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.041745s] ... ok {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.023015s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.024709s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.056382s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.034429s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.055931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.032760s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.026627s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.066180s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.032700s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.029163s] ... ok {3} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.029858s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.075190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_root.TestV1Root.test_get_v1_22_root [0.045042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07a3d1f5-6442-4c3b-a835-a9f043560d46 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}, "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"}]} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.069557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_root.TestV1Root.test_get_v1_23_root [0.066009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7ee79ff-7769-4758-90a7-5702dd5061b6 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}, "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"}]} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.062694s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_root.TestV1Root.test_get_v1_32_root [0.059882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c733b35-eb53-40de-adea-a29e18132d72 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}, "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"}]} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.070323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.052861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_root.TestV1Root.test_get_v1_root [0.081577s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f94e00b1-9107-4871-acbf-e9838ef48772 X-Openstack-Ironic-Api-Maximum-Version: 1.99 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.99"}} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.072867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.082591s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.026058s] ... ok {3} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.032870s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.048258s] ... ok 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.360578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.041912s] ... ok {3} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.031465s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.051826s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.067326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.command.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.060553s] ... 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. {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.054597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateDecoratorTest.test_and [0.019486s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance [0.083306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateDecoratorTest.test_boolean [0.022083s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.045293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateDecoratorTest.test_decorated_args [0.029919s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.064115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.036945s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.025845s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.018215s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.016501s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated [0.039568s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.017362s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.070445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.038580s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address [0.031249s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.021172s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.033063s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated [0.017382s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.031039s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.075683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateDecoratorTest.test_name [0.021067s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.018802s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string [0.021340s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.048836s] ... ok 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_lenovo [0.048996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateDecoratorTest.test_string_list [0.027675s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args [0.017536s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid [0.019204s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name [0.017020s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.084242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.097321s] ... ok 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_ramdisk_pxe_conf_missing [0.076262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.079082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.026923s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_invalid_json [0.023081s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.074746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_200 [0.041911s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_500 [0.061140s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.096392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.027599s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.112118s] ... ok 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_conflicting_boot_modes [0.067521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.249392s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.096299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.025509s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.022629s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.039539s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.097214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_set_irmc_version_fail [0.046211s] ... ok 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.074457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_set_irmc_version_success [0.046388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.023113s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.049812s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.088239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.077056s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCinderClient.test__get_cinder_session [0.870760s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.106363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.047615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_match [0.033327s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.024160s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success [0.022810s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success_out_range [0.035468s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.154206s] ... ok 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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.035951s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.042276s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.043262s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.099990s] ... ok 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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.053002s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.043492s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.099812s] ... ok 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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.047310s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.034033s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.099152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power_off_ok [0.042931s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.047116s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.063160s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.049212s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.048290s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.110933s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.053466s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.047631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCinderClient.test_get_cinder_client_with_context [0.874517s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.033204s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.066128s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.023340s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.023684s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.024496s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.069541s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.056848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.044098s] ... ok 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_kickstart_missing_stage2_id [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( {3} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.036108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.038171s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.071932s] ... ok {3} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.033415s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_client_forbidden_converts_to_imagenotauthed [0.016723s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local [0.041399s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.015689s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.022684s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.024649s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.271929s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance [0.043128s] ... ok 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.IRMCPXEBootTestCase.test_prepare_instance [0.054353s] ... ok 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.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.046403s] ... ok 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.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.042791s] ... ok 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_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [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( {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.042538s] ... ok 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_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.039344s] ... ok 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_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.044479s] ... ok 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_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.039793s] ... ok 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_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.037829s] ... ok 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_management.IRMCManagementTestCase.test_get_properties [0.031242s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.041823s] ... ok 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_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.042793s] ... ok 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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.037812s] ... ok 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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.042920s] ... ok 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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.043771s] ... ok 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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.060511s] ... ok 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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.045494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_with_retries [1.037084s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.043587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_show_makes_datetimes [0.060436s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.062018s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_show_passes_through_to_client [0.029350s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.018801s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.017241s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.045280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIsImageAvailable.test_allow_access_via_auth_token_enabled [0.019596s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_admin_if_config_enabled [0.026072s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.050047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIsImageAvailable.test_allow_community_image [0.033548s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_private_image_owned_by_conductor [0.017065s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.044048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIsImageAvailable.test_allow_public_image [0.021406s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_shared_image_if_member [0.025408s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.042408s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIsImageAvailable.test_deny_private_image_different_owner [0.018064s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [2.063672s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.022918s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.020807s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.029922s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.094528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestServiceUtils.test_parse_image_id_from_glance_fail [0.025989s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.020722s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.035169s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.077821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.047119s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.043069s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.036732s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.143810s] ... ok 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( {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.033820s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.027373s] ... ok {3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.021173s] ... ok {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.023812s] ... ok {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.019557s] ... ok {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.024368s] ... ok {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.040870s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.242335s] ... ok 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( {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.148694s] ... ok 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( {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.331001s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.042093s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.190198s] ... ok 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( {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.032905s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.032168s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.026596s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.018074s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override [0.017136s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_data [0.022287s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_user_auth [0.016788s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.146763s] ... ok 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( {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.016833s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_oci_url [0.017560s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_is_container_registry_url [0.021170s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.058802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.IronicImagesTestCase.test__hanlde_zstd_compression [0.035834s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression_disabled [0.020230s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.047228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.018546s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default [0.017666s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.039865s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller [0.025509s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.022988s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_success [0.048211s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.027962s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_auth_data_checksum [0.037997s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.134009s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.071636s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_combined_algo [0.024447s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.039612s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_no_checksum_algo [0.023132s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_with_checksum [0.023470s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.039677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.IronicImagesTestCase.test_fetch_image_service_with_checksum_mismatch [0.027046s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.044550s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.IronicImagesTestCase.test_image_show_image_service [0.026143s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.027834s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.051592s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.IronicImagesTestCase.test_image_to_gpt [0.027198s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt_backward_compatibility [0.025447s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.042015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.IronicImagesTestCase.test_image_to_raw [0.025470s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_gpt_format [0.020956s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.040276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.IronicImagesTestCase.test_image_to_raw_already_iso [0.018401s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning [0.049186s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.027738s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.025187s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.036467s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.017871s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.019404s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.034258s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.030266s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.022582s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.072346s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.024788s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type [0.019149s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error [0.016167s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.052410s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.022197s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.015899s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.016243s] ... ok {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.055688s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit [0.016583s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.024633s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.017224s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.053187s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.016306s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.016422s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.027026s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.024587s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.038502s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image_oci [0.023985s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.027545s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.025503s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.026894s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [2.123442s] ... ok {3} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_error_cases [0.041690s] ... ok 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_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.050843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_action_path_dot_slash_notation [0.067804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_action_with_dict_loop [0.053969s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_action_with_list_loop [0.065077s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_add_trait_action [0.081301s] ... ok 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_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.345499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_del_attribute_action [0.107991s] ... ok 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_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.052958s] ... ok 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_flat.TestFlatInterface.test__unbind_flat_ports [0.057008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_del_port_attribute_action [0.121953s] ... ok 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_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.075354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_extend_attribute_action [0.085398s] ... ok 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_flat.TestFlatInterface.test_add_cleaning_network [0.050128s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_extend_plugin_data_action [0.044150s] ... ok 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_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.070979s] ... ok 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.network.test_flat.TestFlatInterface.test_add_inspection_network [0.059152s] ... ok 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_flat.TestFlatInterface.test_add_inspection_network_from_node [0.078608s] ... ok 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.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.041616s] ... ok 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_flat.TestFlatInterface.test_add_rescuing_network [0.038821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_extend_port_attribute_action [0.286347s] ... ok 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_flat.TestFlatInterface.test_get_node_network_data [0.055484s] ... ok 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_flat.TestFlatInterface.test_init_no_cleaning_network [0.034997s] ... ok {3} ironic.tests.unit.common.test_inspection_rule.TestActions.test_fail_action [0.064101s] ... ok 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_flat.TestFlatInterface.test_remove_cleaning_network [0.057894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_log_action [0.051166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_remove_trait_action [0.043759s] ... ok 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_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.055626s] ... ok 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_flat.TestFlatInterface.test_remove_provisioning_network [0.039109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_set_attribute_action [0.050989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_set_capability_action [0.048719s] ... ok 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_flat.TestFlatInterface.test_remove_rescuing_network [0.052034s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_set_plugin_data_action [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( {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.042402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_set_port_attribute_action [0.046351s] ... ok 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_flat.TestFlatInterface.test_validate_from_node [0.047630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_unset_capability_action [0.045271s] ... ok 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_flat.TestFlatInterface.test_validate_inspection [0.057976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_unset_plugin_data_action [0.053809s] ... ok 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_flat.TestFlatInterface.test_validate_inspection_exc [0.047267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestClient.test_call_failure [0.029279s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.017566s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.042048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestClient.test_call_failure_with_version_and_cap [0.018307s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv4_success [0.017577s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.042410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestClient.test_call_ipv6_success [0.022537s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success_rfc2732 [0.024558s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.045959s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.017914s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.100886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestClient.test_call_success_with_version_and_cap [0.027819s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.021497s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_client_ssl [0.018638s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_ssl [0.019689s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.092969s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestClient.test_can_send_version [0.019058s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure [0.019117s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.042526s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success [0.019540s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.019885s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.027686s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.029910s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_mask_secrets [0.019323s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.026314s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.029324s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.031303s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.034552s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.020627s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_allowed_role [0.025030s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.036702s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_with_allowed_role [0.027899s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.027671s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.025118s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http [0.020961s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.024444s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.024039s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic [0.029239s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.021935s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic_not_authenticated [0.024753s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.023052s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.024800s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift [0.023859s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.018524s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.025079s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.018003s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets [0.026217s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.025572s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [2.105169s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.021728s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.048452s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.017174s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.041236s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.026687s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.037004s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.035697s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.038256s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.041608s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.024941s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.037831s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_no_deny_methods [0.024255s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.037592s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.023651s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.039891s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.031537s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.077033s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.032690s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.040994s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.025888s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.066519s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.058702s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.024527s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.032988s] ... ok {3} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.051807s] ... ok 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_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.037030s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.086855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.051540s] ... ok 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.109999s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.094777s] ... ok 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.064488s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {2} 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 {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.069127s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.293401s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.094645s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l2 [0.050822s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.192273s] ... ok 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_fail_missing_memory_mb [0.081132s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l3 [0.039495s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.047686s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.046275s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.106575s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.019440s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.028384s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.031276s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.023955s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.224634s] ... ok 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.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.018812s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.016933s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid [0.024796s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_failure [0.019993s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_missing_segment [0.023368s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url [0.016074s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url_adds_oci [0.015191s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_client_init_make_session [0.019306s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_get_blob_url [0.016781s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.171877s] ... ok 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.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url [0.021082s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_digest [0.016778s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_tag [0.018738s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.022045s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.027668s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.020204s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.061283s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.471151s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.206950s] ... ok 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_ignore_missing_cpu_frequency [0.067808s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.092532s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.122810s] ... ok 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_ignore_missing_cpu_instruction_set [0.091873s] ... ok {3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.084737s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.030498s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.024411s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.110293s] ... ok 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.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.020422s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.096881s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.030627s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpus [0.044040s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.034248s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_and_fails [0.039345s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.110905s] ... ok 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.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.018477s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.072192s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.017002s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.015894s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.018906s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.016682s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.079446s] ... ok {3} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.019891s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.137073s] ... ok 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.common.test_utils.ExecuteTestCase.test_execute_command_not_found [0.037342s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.062189s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.019796s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.018374s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.016804s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.049709s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default [0.021797s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false [0.021942s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.117544s] ... ok 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_ignore_missing_simple_storage_and_storage [0.049627s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true [0.053006s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.034191s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.074652s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.020763s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.102504s] ... ok 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.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.018288s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.019424s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.069289s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.027529s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.029665s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.100791s] ... ok 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.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.019935s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.061451s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient [0.018803s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.020089s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.044407s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.033422s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.019924s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.103355s] ... ok 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_conf_update_pxe_disabled_false [0.060007s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.050769s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.061431s] ... ok 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_with_no_mac [0.044626s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.044351s] ... ok 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_with_none_pxe_port_macs [0.056800s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.071214s] ... ok 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_with_set_port_pxe_disabled [0.047840s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.049890s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TempFilesTestCase.test_tempdir [0.247688s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.055566s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.024100s] ... ok {3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.033509s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.044430s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.098185s] ... ok 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_validate [0.029960s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.045521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.057270s] ... ok 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_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean [0.079789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_non_existing_node [0.027143s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.107032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_resource_class_mismatch [0.041953s] ... ok 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_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy [0.062059s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_state_not_active [0.058834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.087658s] ... ok 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_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.065875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_traits_mismatch [0.062652s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.087741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.043758s] ... ok 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_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.094717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_with_associated_node [0.042866s] ... ok 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_raid.RedfishRAIDTestCase.test__get_controller [0.049525s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.088248s] ... ok 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_raid.RedfishRAIDTestCase.test__get_controller_no_controllers [0.031900s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_controllers [0.031343s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.078363s] ... ok 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_raid.RedfishRAIDTestCase.test__get_first_controller_empty [0.033143s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.093078s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_with_unassociated_node [0.053699s] ... ok 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_raid.RedfishRAIDTestCase.test__get_first_controller_storage_controllers [0.048697s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.033086s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.078597s] ... ok 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_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.024877s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.024554s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.025657s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.023183s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.095336s] ... ok 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_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.056913s] ... ok 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() {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.048945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.119820s] ... ok 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_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [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( {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.080840s] ... ok 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_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.070581s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.423121s] ... ok 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_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.031963s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.062070s] ... ok 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_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.028193s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.047207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.048591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.083258s] ... ok 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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.053997s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.069737s] ... ok 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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.062840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.064824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.076851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.085801s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.306938s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.062141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.112437s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.086664s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.064949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.064831s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate [0.105041s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.156989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.065649s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset [0.068988s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.083103s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.051283s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.079741s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset [0.046462s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.050633s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.135819s] ... ok 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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.099709s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_4 [0.049179s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.037367s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.088185s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.109296s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_5b [0.052113s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.066563s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.036887s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.046942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.055766s] ... ok 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_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.053479s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.064494s] ... ok 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_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.039951s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.105665s] ... ok 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_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.062574s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.101651s] ... ok 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_raid.RedfishRAIDTestCase.test_get_physical_disks [0.037925s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.061113s] ... ok 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_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.035499s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.098974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.067224s] ... ok 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_raid.RedfishRAIDTestCase.test_validate_raid_config [0.052812s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.034543s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.052424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.057298s] ... ok 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_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.032787s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.021378s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.050034s] ... ok 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_utils.RedfishUtilsTestCase.test_get_event_service_error [0.026035s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection [0.022411s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.095360s] ... ok 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_utils.RedfishUtilsTestCase.test_get_system_collection_error [0.022648s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.026911s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.094292s] ... ok 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_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.023162s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.072203s] ... ok 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_utils.RedfishUtilsTestCase.test_get_update_service [0.058943s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.064524s] ... ok 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_utils.RedfishUtilsTestCase.test_get_update_service_error [0.033639s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.029088s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.052623s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.201588s] ... ok 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_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.110807s] ... ok 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_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.058135s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.069773s] ... ok 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_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.047614s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.060480s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.139680s] ... ok 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_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.051762s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.024634s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.022883s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.156276s] ... ok 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_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.183283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.058318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.078055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.122607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.071564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [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( /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.063603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.134325s] ... ok 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_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.474519s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.021909s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.129252s] ... ok 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.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.028327s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.021218s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.090881s] ... ok 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_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.037422s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.076812s] ... ok 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_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.035398s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.028310s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.064618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.105594s] ... ok 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_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.024662s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.021954s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.054510s] ... ok 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.AgentRAIDTestCase.test__create_configuration_final [0.075536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.063607s] ... ok 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.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.043466s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.055840s] ... ok 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.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 [0.061434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.058093s] ... ok 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.AgentRAIDTestCase.test__create_configuration_final_registered_clean [0.048237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.053525s] ... ok 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.AgentRAIDTestCase.test__create_configuration_final_registered_deploy [0.042526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.077422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.377764s] ... ok 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.AgentRAIDTestCase.test__delete_configuration_final [0.091782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.057429s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.072741s] ... ok 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.AgentRAIDTestCase.test__delete_configuration_final_registered [0.070542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.062745s] ... ok 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.AgentRAIDTestCase.test_apply_configuration [0.056108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.126172s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.067222s] ... ok 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.AgentRAIDTestCase.test_create_configuration [0.050799s] ... ok 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.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.058700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.074262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.110365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.049057s] ... ok 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.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.071693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.069428s] ... ok 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.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.065069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.080735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.056619s] ... ok 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.AgentRAIDTestCase.test_create_configuration_skip_root [0.050285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.061014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.068291s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.067421s] ... ok 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.AgentRAIDTestCase.test_delete_configuration [0.089192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.065676s] ... ok 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.AgentRAIDTestCase.test_get_clean_steps [0.039459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.066674s] ... ok 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.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.050493s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.094781s] ... ok 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_agent.AgentRAIDTestCase.test_get_deploy_steps [0.039631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.085113s] ... ok 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.ContinueServiceTest.test_continue_servicing [0.073076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.064735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test__do_node_clean_network_error_fail [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( {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean [0.056187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.044645s] ... ok 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.ContinueServiceTest.test_continue_servicing_after_reboot [0.119192s] ... ok 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.ContinueServiceTest.test_continue_servicing_reboot [0.065366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.072387s] ... ok 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.ContinueServiceTest.test_continue_servicing_running [0.065817s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.088779s] ... ok 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.StepMethodsTestCase.test_agent_get_steps [0.050996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.067758s] ... ok 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.StepMethodsTestCase.test_agent_get_steps_deploy [0.069038s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.412628s] ... ok 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.StepMethodsTestCase.test_execute_clean_step [0.050639s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs [0.084909s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.048290s] ... ok 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.StepMethodsTestCase.test_execute_clean_step_running [0.048090s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.099396s] ... ok 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.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.071526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.086857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.068828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.061041s] ... ok 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.StepMethodsTestCase.test_execute_deploy_step [0.079171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.103692s] ... ok 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.StepMethodsTestCase.test_execute_service_step [0.073897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.102615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_validate [0.044995s] ... ok 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.StepMethodsTestCase.test_find_step [0.053039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.055981s] ... ok 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.StepMethodsTestCase.test_find_step_not_found [0.054578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.047751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.117140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.045133s] ... ok 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.StepMethodsTestCase.test_get_deploy_steps [0.073415s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.048798s] ... ok 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.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.074663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.097275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.077651s] ... ok 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.StepMethodsTestCase.test_get_steps_custom_interface [0.099815s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_validate_with_disable_power_off [0.094697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.107433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_vif_attach [0.077850s] ... ok 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.StepMethodsTestCase.test_get_steps_missing_steps [0.118792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.112087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_vif_detach [0.084336s] ... ok 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.StepMethodsTestCase.test_get_steps_override_priorities [0.085840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_vif_list [0.084928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.118607s] ... ok 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.StepMethodsTestCase.test_get_steps_override_priorities_none [0.058554s] ... ok 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.TestRefreshCleanSteps.test_refresh_steps [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( {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.091274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.103355s] ... ok 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.TestRefreshCleanSteps.test_refresh_steps_busy [0.063506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.052794s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.053986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_add_inspection_network [0.042114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.047100s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy [0.076986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.050016s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.057154s] ... ok 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.TestRefreshCleanSteps.test_refresh_steps_missing_interface [0.051185s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.040948s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.058145s] ... ok 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.TestRefreshCleanSteps.test_refresh_steps_missing_steps [0.061890s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.049554s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.051456s] ... ok 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_agent_already_down [0.034206s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data [0.052511s] ... ok 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 [0.048994s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.087081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_get_properties [0.028535s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay_with_fail_if_unavailable [0.031141s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.032652s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_timeout [0.026127s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.039482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BootDeviceTestCase.test_get_boot_device_validate_fail [0.048767s] ... ok 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_boot_mode_utils.SecureBootTestCase.test_configure [0.039974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_portgroup_changed [0.041739s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BootDeviceTestCase.test_get_supported_boot_devices [0.031487s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception [0.036421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.049104s] ... ok 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_boot_mode_utils.SecureBootTestCase.test_configure_none_requested [0.035453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BootDeviceTestCase.test_set_boot_device [0.064471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.037908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.040579s] ... ok 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_boot_mode_utils.SecureBootTestCase.test_configure_unsupported [0.065116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BootDeviceTestCase.test_set_boot_device_node_locked [0.062527s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure [0.053303s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.056948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BootDeviceTestCase.test_set_boot_device_validate_fail [0.049986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_validate [0.040835s] ... ok 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_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception [0.045423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_vif_attach [0.048910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current [0.119725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested [0.086436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_vif_detach [0.049494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoopInterfaceTestCase.test_vif_list [0.045183s] ... ok 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_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported [0.081137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.136480s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.077277s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.078913s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry [0.064358s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.048867s] ... ok 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.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.039292s] ... ok 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.InstanceImageCacheTestCase.test_with_master_path [0.029110s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.081483s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.044579s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.020376s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.115984s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.052698s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.019866s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.017753s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.018543s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.018360s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.361805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.021623s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.154462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.345428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.072188s] ... ok 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.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.331005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.193362s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.048495s] ... ok 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.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.058140s] ... ok 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.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.054940s] ... ok 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.TestStorageInterfaceUtils.test_is_iscsi_boot [0.052597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.108082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.034231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.055607s] ... ok 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.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.035148s] ... ok 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.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.043633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.083007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full [0.125219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.048695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.069365s] ... ok 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.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.073894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.140345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.104963s] ... ok 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.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.081636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.068863s] ... ok 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.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.080723s] ... ok 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.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.044400s] ... ok 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.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.035399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task [0.165567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.060095s] ... ok 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.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.075689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.056870s] ... ok 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.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.055535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.130208s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.046737s] ... ok 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.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.045703s] ... ok 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.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.028367s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.071075s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.035718s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.023751s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.033329s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.105754s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked [0.185683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.032092s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.033767s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.093950s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.060786s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.047524s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.060262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.182096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.037658s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [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( {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.024253s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.023731s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.046825s] ... ok 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_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.040874s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.122472s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.035442s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.090932s] ... ok 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_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.022008s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.020288s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_disable_validation [0.022893s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.053838s] ... ok 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_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.021585s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.095821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.023880s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.026721s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_clear [0.021172s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.083195s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.087171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.020925s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_replace_with_empty [0.021332s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_no_on_error [0.042550s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.084232s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.096168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_post_hook_on_error_callback [0.028414s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_pre_hook_on_error_callback [0.033072s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.062356s] ... ok 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_all_options_fail [0.018445s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.026675s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.038996s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.090518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.026305s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.018132s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.063118s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.025374s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.017445s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.017109s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.103801s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.021972s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.067706s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.026282s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.039893s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.017141s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.034215s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.026198s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.016879s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.039600s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.042208s] ... ok 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.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.047158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConsoleTestCase.test_set_console_mode_disabled [0.098450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.060559s] ... ok 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.IPMIToolShellinaboxTestCase.test__start_console [0.048489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConsoleTestCase.test_set_console_mode_enabled [0.094471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.041705s] ... ok 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.IPMIToolShellinaboxTestCase.test__start_console_fail [0.037406s] ... ok 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.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.041687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.427272s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.037921s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.153665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.029992s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.057114s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.038115s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.073017s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.055531s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.132275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.031993s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.049255s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.044392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.048113s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.097210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.049860s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.046613s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.044444s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.083021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port [0.070166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.040094s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.037138s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port [0.045978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CreatePortTestCase.test_create_port_mac_exists [0.053219s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.045315s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.077735s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.052825s] ... ok 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_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.053509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.098119s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.062890s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.054962s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.296170s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.087063s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.075559s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.054360s] ... ok {2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.059947s] ... ok 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 [0.098596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.058443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_already_destroyed [0.055477s] ... ok 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_pxe.PXEAnacondaDeployTestCase.test_deploy [0.418049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.057860s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.057200s] ... ok 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_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.057329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_locked [0.046642s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.086202s] ... ok 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_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error [0.068893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power_on [0.050910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.048332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_abort [0.064767s] ... ok 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_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.099245s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.056968s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.101530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.057198s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.104834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_pxe.PXEAnacondaDeployTestCase.test_prepare [0.165077s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.094772s] ... ok 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_pxe.PXEAnacondaDeployTestCase.test_prepare_active [0.077440s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_errors [0.106724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.060142s] ... ok 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_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning [0.067041s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.100989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_pxe.PXEAnacondaDeployTestCase.test_reboot_to_instance [0.100826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.138189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.120572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.092343s] ... ok 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_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.043354s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.151797s] ... ok 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_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.037852s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.124732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.046596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.072972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.096962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.050847s] ... ok 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_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.078317s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.064408s] ... ok 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_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.079054s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.126959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.049335s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.089387s] ... ok 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.PassthruDecoratorTestCase.test_passthru_check_func_references [0.068280s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.101849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.026072s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_disable_power_off [0.063608s] ... ok 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.PassthruDecoratorTestCase.test_passthru_ironicexception [0.025402s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.022212s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.074521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.052008s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.085759s] ... ok 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.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.018722s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.030800s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.032151s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.118481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.053533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.052898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.164099s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_inspector [0.053862s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.081692s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_raid [0.066799s] ... ok 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.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.064029s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.080127s] ... ok 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.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.052383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.181458s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.066604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_unrescue [0.081923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent [0.098283s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.064999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_disable_power_off [0.050540s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.056315s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.116223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.038491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_get_power_state_fails [0.070316s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_redfish_vendor [0.096278s] ... ok 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_agent.TearDownAgentTest.test_tear_down_agent_no_power_on_support [0.062886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.087714s] ... ok 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_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.045309s] ... ok 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_irmc.IRMCHardwareTestCase.test_default_interfaces [0.048634s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off [0.076845s] ... ok 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_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.049938s] ... ok 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_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.051432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off_failed [0.086500s] ... ok 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_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.050525s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_power_off_fails [0.100284s] ... ok 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_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.082833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_soft_poweroff_doesnt_complete [0.050445s] ... ok 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_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.039517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_provision_rescue_abort [0.355113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.028381s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.054916s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_soft_poweroff_fails [0.086397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.047080s] ... ok {0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.050005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TearDownAgentTest.test_tear_down_agent_soft_poweroff_race [0.054532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.044578s] ... ok {0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.045922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.053579s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.054798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_clean_up [0.130074s] ... ok 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_utils.UtilsTestCase.test_add_node_capability_append [0.057667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.069143s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.023199s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.021970s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.058980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.023707s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_disable_power_off [0.097253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.032642s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.046636s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.031797s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.059093s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.071586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.048622s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.022921s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.043946s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.067246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_exit_with_other_exception [0.031943s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.044119s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.028519s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.026523s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.054826s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.067202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.026091s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.027729s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.032020s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.101690s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerSyncLocalStateTestCase.test_already_mapped [0.029739s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.130869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerSyncLocalStateTestCase.test_good [0.026570s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.024862s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.023908s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.106186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerSyncLocalStateTestCase.test_not_mapped [0.032565s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.086276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerSyncLocalStateTestCase.test_worker_limit [0.030958s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.065451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.055713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.046711s] ... ok 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_utils.UtilsTestCase.test_get_node_capability [0.043942s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.034146s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.103207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.056708s] ... ok 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_utils.UtilsTestCase.test_normalize_mac_string [0.022346s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.024449s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.020181s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.128615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.028722s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.020684s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.020321s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.072291s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.026793s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.041923s] ... ok {0} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.029253s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.079736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.022192s] ... ok {0} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.024568s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.549828s] ... ok 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_fields.TestMacAddressField.test_coerce [0.026375s] ... ok {0} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.020226s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.098212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_firmware.TestFirmwareComponentObject.test_create [0.029742s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.075050s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.065479s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.044681s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_service_steps [0.048130s] ... ok 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_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.029137s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.096308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.094322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.066156s] ... ok 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.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.108030s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.095774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_prepare_boot_from_volume [0.083836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.185748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.037872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_prepare_cleaning_fast_track [0.045720s] ... ok 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_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.438082s] ... ok {0} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.027508s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.069578s] ... ok 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_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.022502s] ... ok {0} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.024632s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.164474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.029067s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.077369s] ... ok 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_node.TestNodePayloads.test_node_crud_payload [0.026711s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.020837s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot [0.058995s] ... ok 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_node.TestNodePayloads.test_node_payload_no_traits [0.047953s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.114623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.032708s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot [0.062536s] ... ok 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_node.TestNodePayloads.test_node_set_power_state_payload [0.021853s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.019684s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.018073s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [0.057914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.118299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.035909s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.017788s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.018340s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.063628s] ... ok 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_revision_does_not_backport [0.019020s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.017601s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.095970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.085503s] ... ok 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_backports [0.051120s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.018708s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.023986s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.049406s] ... ok 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.017429s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.106861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_objects.TestObjectSerializer.test_object_serialization [0.038846s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.028042s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.084109s] ... ok 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.018799s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.016750s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.103541s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.017194s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.018016s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.035768s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.111651s] ... ok 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.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.029474s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.104608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TestAgentDeploy.test_prepare_service [0.042512s] ... ok 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_deny_macs [0.026203s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.020167s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_only_new_macs [0.019850s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.067843s] ... ok 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.027473s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.042626s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.040905s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.027561s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.022567s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.150411s] ... ok 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.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.040107s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.019639s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.106630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.400359s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev142/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.072796s] ... ok 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.VifTestCase.test_vif_attach [0.055388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_tear_down_cleaning [0.056668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.052848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_attach_node_locked [0.060114s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.037081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.036486s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_tear_down_disable_power_off [0.086982s] ... ok 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.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.041914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_tear_down_service [0.048311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_tear_down_service_disable_power_off [0.052044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_attach_validate_error [0.073432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_detach [0.038928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_detach_node_locked [0.040151s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.084028s] ... ok 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.VifTestCase.test_vif_detach_raises_network_error [0.037412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_validate [0.045791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_detach_validate_error [0.035356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.048776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_list [0.042131s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.052784s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum [0.073345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.018124s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.045701s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.032458s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.034043s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.034406s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type [0.069578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_notification_utils.TestNotificationUtils.test_emit_console_notification [0.024888s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.040770s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.022485s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.021259s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.036717s] ... ok {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.026899s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.048748s] ... ok {3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_drain_has_reserved [0.066403s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.053811s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.037345s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.055593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_start [0.082595s] ... ok {3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_failure [0.048172s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.095298s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_start_no_rpc [0.063707s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.070267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.032218s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash [0.044079s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.023875s] ... ok {3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_has_reserved [0.034680s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_oci_no_checksum [0.060532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_stop_instant [0.047866s] ... ok {3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.025797s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.056628s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.017980s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.044066s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.060259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.039629s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success [0.063311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeServiceStepsTestCase.test__get_service_steps [0.104919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.081482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_write_image_image_source_is_url [0.056075s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeServiceStepsTestCase.test_set_node_service_steps [0.066717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.AgentTokenUtilsTestCase.test_add_secret_token [0.019330s] ... ok {3} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.018326s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_oci_authorization [0.048908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.017342s] ... ok {3} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.041945s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image [0.058655s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheVendorTestCase.test_empty [0.045310s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive [0.045578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheVendorTestCase.test_failed [0.040973s] ... ok {3} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.041592s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheVendorTestCase.test_unsupported [0.031774s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.022422s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.031606s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.023915s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.024841s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.024178s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.026524s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.276743s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.025697s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.049308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestAgentDeploy.test_write_image_with_proxies [0.078521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.048520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTests.test__finalize_rescue [0.055763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTests.test__finalize_rescue_bad_command_result [0.045916s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.074697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTests.test__finalize_rescue_exc [0.040105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.048783s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.062481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTests.test__finalize_rescue_missing_command_result [0.093978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_bad_path_raises [0.017374s] ... ok {3} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths [0.020118s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.040008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.050680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.051337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.052022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths_trailing_slash [0.221779s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [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.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.058065s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_err [0.074887s] ... ok {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_ok [0.076796s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.086045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_migrations.TestWalkVersions.test_migrate_up [0.027898s] ... ok {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.018117s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.070532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_migrations.TestWalkVersions.test_walk_versions_all_default [0.039768s] ... ok {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.038366s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.045582s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cannot_migrate [0.029499s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.053681s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cannot_migrate_some [0.041072s] ... ok {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_all [0.036287s] ... ok {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.034129s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.102298s] ... ok 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.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.026402s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.029742s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.024655s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.028343s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.022188s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.025762s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.036247s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.024236s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.021489s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.237262s] ... ok 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.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.026560s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.026015s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.025050s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.031836s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.104706s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.044515s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.055136s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.122550s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.042408s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.035589s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.051169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_unset_node_tags_node_not_exist [0.036437s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.032704s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.075314s] ... ok 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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.064402s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.064462s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.048802s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.173811s] ... ok 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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.046111s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.025762s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.028029s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.022165s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.036100s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.024032s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.165055s] ... ok 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( {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.023986s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.021158s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.051497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.022619s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.047044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.069291s] ... ok 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_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean [0.048600s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.041942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.097967s] ... ok 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.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.056871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_with_reservation [0.047710s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.022375s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.021605s] ... ok {3} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.242877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.026058s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.017470s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.020617s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.028620s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.020446s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.018230s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.023263s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.018297s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.023847s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.015678s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.015096s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.024638s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.025587s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.033182s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.023034s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.026336s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.021866s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.026577s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.020473s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.024844s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.018574s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.020613s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.040772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.018969s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.021096s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.053134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.034555s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.018928s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.017833s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.043009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.018700s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.045828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.033059s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.041860s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.059314s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.043220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.053734s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.056873s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.097926s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.092284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.080168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.065938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.062704s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.071050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.064615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.089643s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.063624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.065451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.062548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.069005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.051421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.041604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.055115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.047139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.264413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.046389s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.046514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.059946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.078923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_md5_not_permitted [0.056163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.043771s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.036500s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.033198s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.091791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.024373s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.038176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.023958s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_image [0.074891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.035112s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha256 [0.051234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.038218s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.026594s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha512 [0.059417s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.032554s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.028261s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.054376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_anaconda_deploy_image_source [0.022531s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.044836s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.104408s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.053993s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.072325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_authorized [0.043187s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.030760s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.044511s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_invalid_image_href [0.025832s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.038222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_boot [0.025852s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.022838s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.031744s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.028913s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.038328s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_graphical_console.TestGraphicalConsole.test__expire_console_sessions [0.051012s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.052183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_graphical_console.TestGraphicalConsole.test_start_console [0.031082s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.041738s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_graphical_console.TestGraphicalConsole.test_stop_console [0.038806s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.037360s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test__find_param [0.029896s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.038083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.021112s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.031773s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.042181s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.023260s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.033951s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.022345s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.037024s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.022023s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.030089s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.031528s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.037691s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.032019s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.033959s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.031411s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.211396s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.043565s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.023723s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.026986s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.032503s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.023473s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.045244s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.032610s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.020609s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.031986s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.036689s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.029717s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.033640s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.109875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.037264s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.031718s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.091528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.029979s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.044326s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.058395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.045063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.062461s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.068795s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.109722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.061340s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.042526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.044807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.061151s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.039558s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.040839s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.026952s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.040287s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.027040s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.044692s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.034296s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.027648s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.043599s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.027543s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.032194s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.049250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.040713s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.038970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.031957s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.034471s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.039000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.035914s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.052431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.026847s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.054779s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.022966s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.028641s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.024159s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.040209s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.031508s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.023534s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.037861s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.022897s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.030420s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue [0.041540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.037310s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.047348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.037834s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.029765s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.047751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.027100s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.031095s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.031213s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.024140s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.051538s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.030717s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.033685s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.054306s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.309677s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.078745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.SwiftCleanUp.test_clean_up_swift_entries [0.089100s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test_reset_idrac [0.047031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.058585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.091632s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.049069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.051565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.067219s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.062134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.045851s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port [0.043793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.056704s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.042403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.039186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.031405s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.025427s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.022041s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.024944s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.259201s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port [0.049376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.045718s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.042327s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor [0.048357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.039359s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.041591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.036377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.051206s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.043998s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.051229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.036233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.042749s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.044118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.043363s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.042220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.046987s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios [0.045521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.050504s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.037945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.054739s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.043881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.044931s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.039030s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.043917s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.037021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.036680s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.056567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.036595s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.050988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.043970s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.045035s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.062750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios [0.041144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.060137s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.037254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.045192s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.037516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.046365s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios [0.038267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.046429s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios [0.043370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.037387s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.041813s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.036127s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci [0.043568s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test_cache_bios_settings [0.032672s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.031286s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.041691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.031202s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci [0.046771s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.030470s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.030609s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.039997s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test_get_properties [0.029806s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios [0.048491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.IloBiosTestCase.test_validate [0.031587s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.037476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi [0.051613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios [0.039139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.050265s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi [0.046182s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.038787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_instance [0.039981s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.039379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.036371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.036901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.036063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.041279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.051258s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.057118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_reboot_disable_power_off [0.037802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_instance_bios [0.037570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.038124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.042665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.056502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [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( {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.039199s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.045410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.047466s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.063265s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [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( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.049180s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.073904s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.053593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_invalid_params [0.045492s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_from_clean_step [0.091296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rescue_mode [0.040927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_is_in_step_list [0.035955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_http_image [0.033676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.042752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.042338s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_instance_image_info [0.034382s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.039127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.034456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.035184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ramdisk [0.060938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.072395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.069134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.083434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.067113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.107325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.038972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.295373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_partition_image [0.341911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.048896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_glance_image [0.066397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.048107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_glance_image_cleaning [0.063996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.044922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.044514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.061520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.037329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_not_a_glance_image [0.061278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.062334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_not_a_glance_image_cleaning [0.055910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.038680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.037870s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.060616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_not_a_glance_image [0.054098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.075817s] ... ok 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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate [0.043618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.075031s] ... ok 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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios [0.055165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.041469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_inspection [0.030079s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.041560s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.066091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_glance [0.053136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.038933s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.037969s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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 [0.042102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.035543s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.041095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [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( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue [0.040169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.038271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.044286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.049580s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_console.IloConsoleInterfaceTestCase.test_validate [0.037003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.034915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_console.IloConsoleInterfaceTestCase.test_validate_exc [0.036628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.026847s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.060955s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.035601s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.022777s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.023539s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.062501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.022249s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.021825s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.021738s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.080109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_empty [0.029938s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.031488s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.052512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ok [0.023482s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.033427s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.037556s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.032485s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.023445s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.035975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.052304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.048475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.061303s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.037529s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.038503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_netboot_iscsi [0.057347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.037651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_netboot_iscsi_bios [0.059617s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.038182s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test_boot_into_iso [0.037705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_netboot_ramdisk [0.057786s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.037357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.054322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.045095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.057501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios [0.072985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_architecture.ArchitectureTestCase.test_architecture [0.050476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.063383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.049230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_with_fallback [0.068388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_all_match [0.048798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.049561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.077400s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_incorrect_hint [0.040042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.067908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_local_gb_without_spacing [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( {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_no_hints [0.048847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.086472s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_one_matches [0.051301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.061099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_root_device_skip_list [0.041495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_size_invalid [0.039907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.084115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_size_string [0.049432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.hooks.test_root_device.RootDeviceTestCase.test_zero_size [0.052133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.077641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.070211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.AbortInspectionTestCase.test_cleanup_failed [0.071122s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.078977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.AbortInspectionTestCase.test_success [0.080265s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_interface.CheckStatusTestCase.test_exception_ignored [0.034994s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.069900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.069396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.079440s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_interface.CheckStatusTestCase.test_not_check_inspecting [0.249155s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.076562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_interface.CheckStatusTestCase.test_not_finished [0.023268s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.027195s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspector [0.024069s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.080426s] ... ok 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.inspector.test_interface.CheckStatusTestCase.test_status_clean_up_failed [0.033822s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error [0.024643s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_dont_store_inventory [0.026554s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.029798s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory [0.024009s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.033199s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.037497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.050966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.050887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.306550s] ... ok 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.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.049393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ramdisk [0.036390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.088945s] ... ok 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.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.067234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.069183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.038198s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.050111s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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 {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.039308s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.057014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.040708s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.037367s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.076710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.050856s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.041966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.044983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ramdisk_glance_image_cleaning [0.113521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.076636s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.075141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.047270s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.054685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.053929s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.042386s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_http_boot_enabled [0.033995s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk [0.065586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ramdisk_not_deploying_not_cleaning [0.246966s] ... ok 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.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.064132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.028429s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [0.041630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.074454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoInterfacesTestCase.test_bios [0.021900s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.019199s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.062318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoInterfacesTestCase.test_inspect [0.018969s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.022097s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.042351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoInterfacesTestCase.test_rescue [0.037812s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.048922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoInterfacesTestCase.test_vendor [0.039318s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.020035s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_default [0.065990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop_mgmt.TestNoopManagement.test_set_boot_device [0.016821s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.054677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_get_power_state_ipmi [0.064172s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_redfish [0.057450s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.075134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_get_properties [0.041583s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.059488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_reboot_power_on [0.043920s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.034711s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.039082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_reboot_reboot [0.040629s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.069512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.046794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.055428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_set_power_state [0.057638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.062544s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_set_power_state_timeout [0.040105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_validate_default [0.031892s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios [0.070096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.038995s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_redfish [0.072010s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_lenovo [0.124961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_validate_ipmi [0.115643s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.172844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.IRMCPowerTestCase.test_validate_redfish [0.101883s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.103123s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.174811s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.090778s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.072528s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.105805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.034137s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.035689s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.022246s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.022879s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.030617s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.030942s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.023215s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios [0.298443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.071445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.230236s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.060893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.029175s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.060520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.064228s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.039768s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.087336s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.031043s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.031400s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios [0.071579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.036005s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.040391s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.065399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.033144s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.041314s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.073631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.041418s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.075297s] ... ok 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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.096902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.072410s] ... ok 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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.056158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.054003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.099137s] ... ok 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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.042796s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.062025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.038730s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.096755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk [0.034982s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.034939s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.070562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.037468s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.036244s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.092649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.042110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.052957s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.099759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.050153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.059411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.096015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.036146s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local [0.035787s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.035847s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.097619s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.026750s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.032403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.037463s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.096130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.038165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.083452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_deploy [0.095991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.086636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.122068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.105280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port [0.132297s] ... ok 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_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.046962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.040995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.054850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.054045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.043821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.052377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.055260s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.041153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.295965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.053888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.059716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.058184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_prepare [0.069295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.049825s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_prepare_active [0.043242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.053663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning [0.037523s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.068715s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk [0.103369s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.049916s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing [0.048828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.046261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning [0.054606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.052091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ramdisk.RamdiskDeployTestCase.test_validate [0.074734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.072392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.039273s] ... ok {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.049977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.040473s] ... ok {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch [0.040261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.033979s] ... ok {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [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( {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.055669s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.022425s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.027069s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.053499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.024098s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.020557s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.019577s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.019242s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.033339s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.023434s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.024114s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.023243s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.019799s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.034197s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.029972s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.273148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.031727s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.040123s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.029217s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.019825s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.027188s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.019152s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.031754s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.019247s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.019139s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.035176s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.020104s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.025564s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.048268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.019738s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.022227s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.019362s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.048271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.029170s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.039756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.022129s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.020729s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.038680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.025126s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.020202s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.046970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.020128s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.024945s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.053928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.023443s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.029684s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.054991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.023785s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.021483s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.023337s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.054158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.020590s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.027770s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.044077s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.025651s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.029541s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.022073s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.031150s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.033696s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.031902s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.025102s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.028236s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.023280s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.032028s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.025571s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.025502s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.028850s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.021432s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.029534s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.027182s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.028637s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.032867s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.028808s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.026997s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.028074s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.020973s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.027896s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.023227s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.033286s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.046696s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.030230s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.026240s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.028335s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.020369s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.027988s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.019877s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.029420s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.027632s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.028718s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.030097s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.026182s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.044745s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.032959s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.027779s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.029839s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.028289s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.036288s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.029026s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.030072s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.066217s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_whole_disk_image [0.065006s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_normal_boot [0.286350s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot [0.066791s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.095366s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.066354s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.069725s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.040990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_prepare_ramdisk_no_debug [0.046013s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_with_params [0.050887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [1.031048s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.032611s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_correct_vendor [0.036478s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_errors_with_lack_of_support [0.031240s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_inspection [0.030475s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.030538s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_local [0.034512s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_missing [0.031517s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [0.047900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.053036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail_servicing [0.048683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.052329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_no_targets [0.029388s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_targets [0.028318s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.024275s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.030671s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.023518s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.044858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.051662s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [0.046626s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.045624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.249348s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.047646s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last_service [0.047607s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.041262s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_create_all_components [0.096398s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings [0.051273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_empty_settings_service [0.046596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_get_properties [0.028318s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.047604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings_service [0.045266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.039986s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.064755s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.067941s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.045847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings_service [0.045895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.049298s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.053728s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.046978s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.051123s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.063386s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.262825s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.049087s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session [0.049922s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.049521s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [0.049456s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.048776s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.058013s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.052166s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.048597s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.054997s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.049362s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.291907s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.051992s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.049642s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.049757s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.047591s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.048906s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.049658s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.029871s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.029767s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.027305s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.028907s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.030806s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.029434s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.031414s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.031241s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.032412s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.031731s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.031142s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.035498s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot [0.033292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_boot_loader_install_fail [0.069866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.036278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.038054s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.035994s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_lenovo [0.043549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid [0.038230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid_whole_disk [0.267291s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_on_non_software_raid [0.036945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid [0.050364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_bios [0.051276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_bios [0.050446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_uefi [0.054465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.052091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.064409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_set_boot_device_fail [0.080284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_uefi [0.057437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image [0.039847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image_bios [0.040984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConfigureLocalBootTest.test_configure_local_boot_with_prep [0.043753s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PrepareInstanceToBootTest.test_prepare_instance_to_boot [0.044207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PrepareInstanceToBootTest.test_prepare_instance_to_boot_configure_fails [0.046060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.PrepareInstanceToBootTest.test_prepare_instance_to_boot_localboot_prep_partition [0.071356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.048175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_fails [0.102956s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBootcAgentDeploy.test_execute_bootc_install [0.039345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBootcAgentDeploy.test_set_boot_to_disk [0.045902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBootcAgentDeploy.test_set_boot_to_disk_lenovo [0.043904s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBootcAgentDeploy.test_validate [0.040461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBootcAgentDeploy.test_validate_fails_image_source_not_set [0.041242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBootcAgentDeploy.test_validate_fails_with_non_oci [0.040676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_clean_up [0.049624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_clean_up_disable_power_off [0.055945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_deploy [0.054431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_deploy_fast_track [0.056445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false [0.050495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_deploy_with_deployment_reboot [0.050828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_get_properties [0.028346s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.052557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_prepare_disable_power_off [0.051079s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_prepare_fast_track [0.053942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCustomAgentDeploy.test_validate [0.047031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.045567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_no_power_on [0.040452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning [0.056091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.055847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.052731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.056171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_fail [0.044007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.086990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.122192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_old_command [0.068712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_reboot [0.088804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_running [0.048103s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_unknown [0.068922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_with_hook [0.094365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.053194s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ContinueCleaningTest.test_continue_manual_cleaning [0.059888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestAgentClient.test__command [0.020149s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.017283s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.017120s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.017008s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.018880s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.033449s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.021828s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.018198s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.271943s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.020663s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.017621s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.028150s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.021227s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll [0.019394s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify [0.017764s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.016638s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable [0.025637s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.025617s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal [0.017679s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.018645s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.017098s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.019752s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.016264s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.019897s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.018407s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.016743s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.016822s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.016202s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.016894s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.021208s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.018614s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.017246s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries [0.016231s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.017214s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify [0.017501s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.016706s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.016941s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.016405s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.016560s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.016443s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.016603s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required [0.017119s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.019924s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.018794s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.019088s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.021549s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.021569s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.024483s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.048519s] ... ok 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.test_agent_power.AgentPowerTest.test_reboot_another_state [0.040042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.AgentPowerTest.test_reboot_into_instance [0.040443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_power.AgentPowerTest.test_reboot_timeout [0.051584s] ... ok 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.test_agent_power.AgentPowerTest.test_validate [0.029330s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.027296s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.025296s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.023167s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default [0.032458s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.029026s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set [0.027469s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.021154s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.021010s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.026447s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.019004s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.018731s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.023352s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.021960s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.032231s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.022402s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.030990s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.021106s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.021379s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.048972s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.024040s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.022089s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [9.041592s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.041477s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.301406s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.021621s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.022454s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.823753s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.022739s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.028249s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.058984s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.041746s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.058582s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [1.036004s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.439542s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.048644s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.054863s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.055758s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.044503s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.045612s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.041331s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.070237s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.051394s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.040734s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.039511s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.038954s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.062748s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.078591s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.062129s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.078941s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.085103s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.043630s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.056214s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.038834s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.101302s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.033331s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.045282s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.046222s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.030381s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.029170s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.066138s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.025391s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.030254s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.037248s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.066256s] ... ok {3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.026107s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.092949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.081113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.103794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.062343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.070995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.059411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.065376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.050859s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.085704s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.103254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_part_img_checked [0.108863s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.100750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_local_download [0.083428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download [0.103321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download_rebuild [0.091502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.115816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.131378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.111238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CleanupImageCacheTestCase.test_both_clean_up [0.618691s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.073435s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.075247s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.078523s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.070482s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.037101s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.041387s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.054531s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.045984s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.043302s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.049288s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.042758s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.037009s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.042237s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.072626s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.069672s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.088744s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.051519s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.057605s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip [0.055837s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip_as_url [0.056391s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.051548s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.043851s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host [0.048776s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host_in_url [0.046104s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.033489s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.054617s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.040532s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.032025s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.043545s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.035847s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.112320s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.027197s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.047609s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.030076s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.041621s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.027801s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.048447s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.085942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.052699s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.050279s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.082637s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.139272s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.099058s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.088112s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.073656s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.068622s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.057649s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.061803s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.072089s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.085779s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.065560s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.065649s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.045856s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.042929s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.077968s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.063375s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.049902s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.070466s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.057533s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.028185s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.044887s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.046761s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.033016s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.065237s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.071732s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.024559s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.056801s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.023270s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.082221s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.077205s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.093074s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.063464s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.054806s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.036102s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.038527s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.036937s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.029782s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.026035s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.037117s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.046871s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.046128s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.066629s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.061748s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.080898s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.053178s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.049311s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.039016s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.069444s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [9.072571s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.029192s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.025920s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [2.781981s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__power_status_error [0.071015s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.069030s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.055937s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.079154s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_caller_exception [0.061857s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_str_password [0.072319s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_known_exception [0.073458s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_unknown_exception [0.067989s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_with_numeric_password [0.061803s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_write_exception [0.065256s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__set_and_wait_explicit_reboot [1.099893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__soft_power_off [1.074870s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__soft_power_off_max_retries [2.116124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_exception_non_retryable_failure_bmc_initialization_in_progress [0.093583s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.096105s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.078844s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.068165s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.064896s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.069592s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.082118s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.058053s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.031322s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.037483s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.048908s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.032852s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.069836s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.071947s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.065302s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.042505s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.035484s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.117952s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.097016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.114200s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [9.027766s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.101616s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.053876s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.054245s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.056316s] ... ok {3} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.035526s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.058150s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.039929s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.044132s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.056271s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.048546s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.029358s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.045832s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.057364s] ... ok {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.093231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.057730s] ... ok {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.044875s] ... ok {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.087010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.084516s] ... ok {3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.090854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.089965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.042174s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.046541s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [1.088966s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.047062s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.055228s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.042534s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.051737s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.055337s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.046176s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.054181s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.072188s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.053390s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.089445s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.062875s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.092070s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.041649s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.051133s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.039923s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.029334s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.032144s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.034459s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.027482s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.048174s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.029754s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.051827s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.024363s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.021557s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.021542s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.021746s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.030197s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.025747s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.023364s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.021857s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.031757s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.026997s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.025084s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.020298s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.020159s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.331224s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.059077s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.026870s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.027130s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.029030s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.026714s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.029476s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.023270s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.027142s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing [0.027257s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set [0.020623s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.028608s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [2.049938s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.050048s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.052890s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.029559s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.023905s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.024341s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.028308s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.027525s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.050733s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.023620s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.022756s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.021903s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.022280s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.022287s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.027105s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.033143s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.028939s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.026179s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.063715s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.041194s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.023387s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.021254s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_missing [0.024144s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.020838s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.025166s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.022627s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing [0.023346s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.021547s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.025344s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.028633s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.024479s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.020402s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.038062s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.021214s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.026247s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.029410s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.032702s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.029653s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.022336s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.057306s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.037128s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.052025s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.063017s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.045521s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.042840s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.027475s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.034799s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.040585s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.033900s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing [0.038771s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.027517s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing [0.033553s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.030211s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.030483s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.048333s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.037883s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.032571s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.044749s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.037408s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.033835s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.032447s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.027449s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.026787s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.049657s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.030323s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.020792s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.023223s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.022205s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.019498s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.031020s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.028817s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.049141s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.051739s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.020235s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.020415s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.053673s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.022453s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.032765s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.035204s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden [0.027317s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.033883s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields [0.021071s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.028986s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.046741s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.034965s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.020920s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.035220s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.024237s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.294422s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.028005s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.036824s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.048859s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.038848s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.025830s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.028732s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.022821s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.027025s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.066989s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.022790s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.020328s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.028158s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.041547s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.023022s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.020474s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.019783s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name [0.019752s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.034555s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.022230s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner [0.020149s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.056900s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.058546s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.041084s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.048530s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.031765s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.020470s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.020170s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.030942s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.032085s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.021505s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.020917s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.028206s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.020601s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.072258s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.028519s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.022811s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.021577s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.027568s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.024765s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.028090s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.023388s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.021365s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.025797s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.063247s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.047084s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.050619s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.068553s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.043130s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.022592s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.019722s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.029345s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.029592s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.025952s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.020414s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.021650s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.028861s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.027365s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [9.083287s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.091091s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.113797s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [9.067579s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [1.038738s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [9.050193s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.044682s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.049554s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [9.054161s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.038649s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.044486s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.038069s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.043630s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects [0.044779s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.046172s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.044907s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.056762s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.046907s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.052387s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.046330s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.040076s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.042873s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.044821s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.048365s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.073762s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_get_power_state_off [0.074949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_get_power_state_on [0.072182s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.073917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_get_properties [0.076765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_reboot [0.072965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_reboot_error [0.073591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.101447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_reboot_timeout [0.085603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_error [0.082397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_off [0.081628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.079674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.077153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_on [0.076935s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.077043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.072054s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.073620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.046394s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.049106s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.042173s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.056505s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.049338s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.040094s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.041121s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.041656s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.046785s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.044821s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.033091s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.041603s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.040718s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.040993s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.035927s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.040293s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.042491s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.037272s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.038161s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.035818s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.040113s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.039779s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.035158s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.047641s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.044250s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.456936s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.047830s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.038787s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.045168s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.052613s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.035128s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.044607s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.047015s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.036916s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.047522s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.064020s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.051042s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.066429s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.060595s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.043931s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.020075s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.026342s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.018635s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.022035s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.019686s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.024671s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.056991s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.018308s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.030422s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.028284s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.016504s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.028369s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.034722s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.018129s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.041276s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.022812s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.019050s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.019076s] ... ok {2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.016693s] ... ok {2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.021578s] ... ok {2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.018371s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.043940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.IloHardwareTestCase.test_override_with_agent_rescue [0.040197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.IloHardwareTestCase.test_override_with_inspector [0.050270s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.IloHardwareTestCase.test_override_with_no_bios [0.045931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.IloHardwareTestCase.test_override_with_pxe [0.035656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.050697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deployment.TestDeploymentObject.test_create [0.036761s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.032879s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.040206s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.042378s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.038832s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.027044s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found [0.033996s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.028377s] ... ok {2} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.023309s] ... ok {2} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.023090s] ... ok {2} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.017659s] ... ok {2} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.018073s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.020148s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.017977s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.017330s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.032024s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.028155s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.017456s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create [0.024227s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.023986s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get [0.059835s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.049264s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.049271s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list [0.044031s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.025120s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.021405s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.017230s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.016308s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.030340s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.036389s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.048470s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.055304s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.056923s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.042053s] ... ok ====== Totals ====== Ran: 10062 tests in 290.5515 sec. - Passed: 10017 - Skipped: 45 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 Sum of execute time for each test: 856.6638 sec. ============== Worker Balance ============== - Worker 0 (2430 tests) => 0:03:11.954106 - Worker 1 (1928 tests) => 0:02:18.294621 - Worker 2 (2496 tests) => 0:04:47.841027 - Worker 3 (3208 tests) => 0:04:09.848033 Test id Runtime (s) ----------------------------------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state 9.083 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state 9.073 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout 9.068 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout 9.054 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state 9.050 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state 9.042 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout 9.028 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on 4.089 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout 3.092 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout 3.067 py312: OK (312.56 seconds) congratulations :) (312.62 seconds) + RPM_EC=0 ++ jobs -p + exit 0 Processing files: openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.noarch Provides: openstack-ironic = 1:29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.noarch warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic_tests.egg_info Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.FpMkM7 + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/usr/share/doc/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev142/README.rst /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64/usr/share/doc/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev142/etc/ironic/policy.yaml.sample /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.swhc3S + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/usr/share/licenses/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev142/LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10 openstack-ironic-common = 1:29.1.0-0.20250530172959.26ee9b8.el10 python3.12dist(ironic) = 29.1~~dev142 python3dist(ironic) = 29.1~~dev142 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.20250530172959.26ee9b8.el10.noarch Provides: openstack-ironic-api = 1:29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.noarch Provides: openstack-ironic-conductor = 1:29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.noarch Provides: openstack-ironic-novncproxy = 1:29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.noarch Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.Hjttz5 + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev142/LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10 openstack-ironic-dnsmasq-tftp-server = 1:29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.noarch Provides: openstack-ironic-pxe-filter = 1:29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10.noarch Provides: python-ironic-tests = 1:29.1.0-0.20250530172959.26ee9b8.el10 python3-ironic-tests = 1:29.1.0-0.20250530172959.26ee9b8.el10 python3.12-ironic-tests = 1:29.1.0-0.20250530172959.26ee9b8.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.20250530172959.26ee9b8.el10 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.src.rpm Wrote: /builddir/build/RPMS/openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-api-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-novncproxy-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-pxe-filter-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-conductor-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-common-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Wrote: /builddir/build/RPMS/python3-ironic-tests-29.1.0-0.20250530172959.26ee9b8.el10.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.TBx9fJ + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev142 + /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250530172959.26ee9b8.el10.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.XwtzNT + umask 022 + cd /builddir/build/BUILD + rm -rf /builddir/build/BUILD/ironic-29.1.0.dev142-SPECPARTS + rm -rf ironic-29.1.0.dev142 ironic-29.1.0.dev142.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.20250530172959.26ee9b8.el10.x86_64/usr/lib/python3.12/site-packages/ironic_tests.egg_info Child return code was: 0